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


1. 背景

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

2. 問(wèn)題

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ì)保存亂碼睁壁,使其無(wú)法恢復(fù)中文。
解決方法1:點(diǎn)擊右下角中的“UTF-8”挨厚,選擇“通過(guò)編碼重新打開”堡僻,輸入“GB 2312”,選擇“Simplified Chinese(GB 2312)”即可疫剃。

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

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

"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"并齐,選擇”通過(guò)編碼保存“,輸入”GB 2312“客税,選擇“Simplified Chinese(GB 2312)”况褪,將UTF-8轉(zhuǎn)換成GB 2312。

通過(guò)編碼保存
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"食侮,選擇”通過(guò)編碼保存“,輸入”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)中文亂碼或無(wú)法輸出中文

終端無(wú)法輸出中文

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

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

3. 總結(jié)

  1. 打開文件時(shí)半夷,設(shè)置"files.autoGuessEncoding": true令VS Code自動(dòng)選擇合適編碼方式婆廊。
  2. 通過(guò)命令行或運(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)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市筹我,隨后出現(xiàn)的幾起案子扶平,更是在濱河造成了極大的恐慌,老刑警劉巖蔬蕊,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件结澄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡岸夯,警方通過(guò)查閱死者的電腦和手機(jī)麻献,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)囱修,“玉大人赎瑰,你說(shuō)我怎么就攤上這事∑屏” “怎么了餐曼?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)鲜漩。 經(jīng)常有香客問(wèn)我源譬,道長(zhǎng),這世上最難降的妖魔是什么孕似? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任踩娘,我火速辦了婚禮,結(jié)果婚禮上喉祭,老公的妹妹穿的比我還像新娘养渴。我一直安慰自己,他們只是感情好泛烙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布理卑。 她就那樣靜靜地躺著,像睡著了一般蔽氨。 火紅的嫁衣襯著肌膚如雪藐唠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天鹉究,我揣著相機(jī)與錄音宇立,去河邊找鬼。 笑死自赔,一個(gè)胖子當(dāng)著我的面吹牛妈嘹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绍妨,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蟋滴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼染厅!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起津函,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肖粮,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后尔苦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩馆,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年允坚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了魂那。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稠项,死狀恐怖涯雅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情展运,我是刑警寧澤活逆,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站拗胜,受9級(jí)特大地震影響蔗候,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜埂软,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一锈遥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧勘畔,春花似錦所灸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至诉字,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間知纷,已是汗流浹背壤圃。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琅轧,地道東北人伍绳。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像乍桂,于是被迫代替她去往敵國(guó)和親冲杀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子效床,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361