VS Code:4個(gè)中文亂碼問題及解決方法


1. 背景

??凡是編程軟件,特別是國外的軟件,都有或多或少的中文亂碼問題(畢竟程序都是用英文寫的)。現(xiàn)提出VS Code編程過程中遇到的4個(gè)中文亂碼問題以及解決方法。

2. 問題

2.1 打開文件后,中文顯示亂碼

中文亂碼
#include <iostream>
using namespace std;

int main()
{
    int sum = 0, value = 0;
    //????????????????EOF??????????????????????????????????????
    //?????????????ctrl+z??????
    while (cin >> value) {
        sum += value;
    }
    cout << "Sum is: " << sum << endl;
    return 0;
}

注意:當(dāng)打開文件,其內(nèi)容中文亂碼時(shí),不要Ctrl+S保存文件。因?yàn)槟菢訒?huì)保存亂碼,使其無法恢復(fù)中文。
解決方法1:點(diǎn)擊右下角中的“UTF-8”,選擇“通過編碼重新打開”,輸入“GB 2312”,選擇“Simplified Chinese(GB 2312)”即可。

點(diǎn)擊UTF-8
通過編碼重新打開
Simplified Chinese(GB 2312)
通過編碼重新打開后的結(jié)果

解決方法2:打開“查看”>“命令面板”,輸入“setting”, 選擇“首選項(xiàng):打開設(shè)置(json)”,輸入如下語句并保存即可。

"files.autoGuessEncoding": true
命令面板
首選項(xiàng):打開設(shè)置(json)
files.autoGuessEncoding
解決結(jié)果

提示:設(shè)置完成后,若文件還是中文亂碼,關(guān)閉文件重新打開即可。

2.2 終端命令行運(yùn)行時(shí)出現(xiàn)中文亂碼

g++ 1.cpp -o 1.exe; ./1.exe
終端中文亂碼

原因:在終端使用命令行運(yùn)行程序時(shí),文件為UTF-8編碼,而非GB2312編碼。

解決方法1:點(diǎn)擊右下角的"UTF-8",選擇”通過編碼保存“,輸入”GB 2312“,選擇“Simplified Chinese(GB 2312)”,將UTF-8轉(zhuǎn)換成GB 2312。

通過編碼保存
Simplified Chinese(GB 2312)
GB2312運(yùn)行結(jié)果

解決方法2:在命令行前面添加chcp 65001用于換碼。

chcp 65001; g++ 1.cpp -o 1.exe; ./1.exe
命令行運(yùn)行結(jié)果

2.3 點(diǎn)擊運(yùn)行鍵運(yùn)行程序出現(xiàn)中文亂碼

運(yùn)行鍵運(yùn)行程序

原因:從終端可發(fā)現(xiàn),點(diǎn)擊運(yùn)行鍵運(yùn)行程序與直接用命令行運(yùn)行程序相類似,其中文亂碼也是因?yàn)槭褂肬TF-8編碼。
解決方法1:點(diǎn)擊右下角的"UTF-8",選擇”通過編碼保存“,輸入”GB 2312“,選擇“Simplified Chinese(GB 2312)”,將UTF-8轉(zhuǎn)換成GB 2312。

Simplified Chinese(GB 2312)
運(yùn)行結(jié)果

解決方法2:打開“查看”>“命令面板”,輸入“setting”, 選擇“首選項(xiàng):打開設(shè)置(json)”,在"code-runner.executorMap"中的“cpp”添加“chcp 65001”。

首選項(xiàng):打開設(shè)置(json)

修改前:

"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"

修改后:

"cpp": "cd $dir && chcp 65001 && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
運(yùn)行結(jié)果

2.4 調(diào)試時(shí),終端出現(xiàn)中文亂碼或無法輸出中文

終端無法輸出中文

原因:文件使用GB2312編碼,而非UTF-8編碼。
解決方法:點(diǎn)擊右下角的"GB2312",選擇”通過編碼保存“,輸入”utf-8“,選擇”UTF-8 utf8“即可。

GB2312
通過編碼保存
UTF-8
在UTF-8下調(diào)試結(jié)果

3. 總結(jié)

  1. 打開文件時(shí),設(shè)置"files.autoGuessEncoding": true令VS Code自動(dòng)選擇合適編碼方式。
  2. 通過命令行或運(yùn)行鍵運(yùn)行程序時(shí),若是UTF-8編碼會(huì)造成中文亂碼,需要在運(yùn)行命令中添加“chcp 65001”,或者將UTF-8編碼轉(zhuǎn)換成GB2312編碼。
  3. VS Code默認(rèn)編碼是UTF-8,調(diào)試時(shí)也是使用UTF-8,可以輸出中文。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容