VSCode中C/C++編碼亂碼問題的兩種解決方法
問題
在中國地區(qū),Windows 系統(tǒng)中的 cmd 和 PowerShell 默認(rèn)編碼是 GBK,但 VSCode 默認(rèn)使用 UTF-8 編碼。這種編碼不一致會(huì)導(dǎo)致在 VSCode 終端中運(yùn)行 C/C++ 程序時(shí)出現(xiàn)亂碼。以下介紹兩種方法來解決這一問題。
方法一:通過 Code Runner 插件調(diào)整編碼
我們可以借助 VSCode 的 Code Runner 插件來解決編譯和執(zhí)行 C/C++ 代碼時(shí)的編碼問題。首先確保已安裝 Code Runner 插件,安裝完成后,即可方便地通過“Run Code”按鈕或快捷鍵 Ctrl + Alt + N 來編譯和運(yùn)行代碼。
配置步驟
- 按下
Ctrl + ,打開 VSCode 設(shè)置頁面。 - 在設(shè)置搜索欄中輸入
code runner,找到Executor Map設(shè)置項(xiàng),選擇在 settings.json 中編輯。

- 在
settings.json文件中,找到 “code-runner.executorMap”,修改C和C++ 的配置如下
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt -finput-charset=UTF-8 -fexec-charset=GBK && .\\$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -finput-charset=UTF-8 -fexec-charset=GBK && .\\$fileNameWithoutExt"
相比原來只是在gcc后面添加了 -finput-charset=UTF-8 -fexec-charset=GBK 意思是把UTF-8編寫的文件用GBK來進(jìn)行編碼。
- -finput-charset=UTF-8 指定輸入文件的編碼為 UTF-8。
- -fexec-charset=GBK 指定編譯生成的可執(zhí)行文件在終端中使用 GBK 編碼。

此時(shí),運(yùn)行 C/C++ 程序時(shí),將采用 GBK 編碼顯示輸出,避免亂碼。
方法二:在 PowerShell 中調(diào)整編碼
如果大家平時(shí)習(xí)慣使用 PowerShell,那么可以通過以下配置將 PowerShell 的輸入輸出編碼調(diào)整為 UTF-8。這種方式不僅簡(jiǎn)單有效,還可以徹底解決終端中的亂碼問題。
配置步驟
打開 PowerShell 配置文件
profile.ps1(如未創(chuàng)建則新建)。在文件中添加以下代碼:
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
這條指令將 PowerShell 的輸入和輸出編碼都設(shè)置為 UTF-8,確保在終端中運(yùn)行程序時(shí),不會(huì)出現(xiàn)編碼不匹配導(dǎo)致的亂碼問題。

注意事項(xiàng)
- 此配置方法僅對(duì) PowerShell 有效,不適用于 cmd。
- 如果切換到其他編碼,請(qǐng)?jiān)?nbsp;
profile.ps1文件中重新配置相應(yīng)的編碼。
總結(jié)
以上兩種方法分別適用于不同的場(chǎng)景。如果您經(jīng)常在 VSCode 中使用 Code Runner 運(yùn)行代碼,推薦方法一;如果習(xí)慣直接使用 PowerShell 終端,推薦方法二。根據(jù)您的實(shí)際需求選擇合適的配置,便可以有效避免 C/C++ 程序的編碼問題。
到此這篇關(guān)于VSCode中C/C++編碼亂碼問題的兩種解決方法的文章就介紹到這了,更多相關(guān)VSCode C/C++編碼亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Matlab實(shí)現(xiàn)繪制中秋山間秋月和皓月當(dāng)空效果
中秋節(jié)還有三天就到了,中秋節(jié)啊,闔家團(tuán)圓的日子。本文將利用Matlab繪制中秋山間秋月和皓月當(dāng)空的動(dòng)態(tài)效果,感興趣的可以了解一下2022-09-09
C++避免棧內(nèi)存溢出的幾種實(shí)現(xiàn)方法
在C++編程中,一個(gè)線程的棧內(nèi)存通常是有限的,本文就來詳細(xì)介紹幾種避免棧溢出的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-09-09
VS2019安裝cbd調(diào)試器的實(shí)現(xiàn)步驟
本文主要介紹了VS2019安裝cbd調(diào)試器的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
C/C++最短路徑算法之迪杰斯特拉Dijkstra的實(shí)現(xiàn)詳解
Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。本文將詳解該算法的圖解與實(shí)現(xiàn),需要的可以參考一下2022-07-07
C++多態(tài)的實(shí)現(xiàn)及原理詳細(xì)解析
C++的多態(tài)性用一句話概括就是:在基類的函數(shù)前加上virtual關(guān)鍵字,在派生類中重寫該函數(shù),運(yùn)行時(shí)將會(huì)根據(jù)對(duì)象的實(shí)際類型來調(diào)用相應(yīng)的函數(shù)。如果對(duì)象類型是派生類,就調(diào)用派生類的函數(shù);如果對(duì)象類型是基類,就調(diào)用基類的函數(shù)2013-09-09

