VSCode 與 cmd 兩者之間的編碼方式不一樣:VSCode 默認是 utf-8 編碼,而在中國地區下的 Windows 的 cmd 默認是 GBK 編碼。
方法一
VSCode終端其實調用的是cmd.exe,所以當這里出現中文亂碼的時候要解決的是cmd的編碼設置問題。
- 可以通過 chcp 命令查看 cmd 的編碼設置,GBK2312 的代碼頁編號是 936,然后改成utf-8的編碼即可,
- utf-8 對應的代碼頁編號是 65001 ,所以執行 chcp 65001 就可以把cmd的編碼設置成uft-8了,
- 這樣就解決了亂碼問題,然后可以再次運行代碼查看輸出
當然每次使用都輸入一遍 chcp 65001 太煩了 ,可以直接在setting.json 中加上
"code-runner.executorMap":{ "cpp":"chcp 65001 " },
方法二
若是按F5啟動調試出現亂碼,則可以按
- 具體操作步驟 文件——>首選項——>設置——>搜索設置——>encoding——>Files:Encoding ——> gbk 修改實現
VScode默認是UTF-8編碼格式,我們要做的是更改VScode的默認編碼格式為GBK。
下面是有關gbk和UTF-8編碼方式的簡單介:
- GBK全稱《漢字內碼擴展規范》(GBK即“國標”、“擴展”漢語拼音的第一個字母,英文名稱:Chinese Internal Code Specification) ,中華人民共和國全國信息技術標准化技術委員會1995年12月1日制訂,國家技術監督局標准化司、電子工業部科技與質量監督司1995年12月15日聯合以技監標函1995 229號文件的形式,將它確定為技術規范指導性文件。這一版的GBK規范為1.0版。
- UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼,由Ken Thompson於1992年創建。現在已經標准化為RFC 3629。UTF-8用1到6個字節編碼Unicode字符。用在網頁上可以統一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。
方法三
在node.js的調試過稱中,經常需要在終端中使用console.log()輸入一些變量,然而windows的cmd默認是GBK編碼,在調試的過程中會出現亂碼。
幸好VScode提供的對內置控制台的運行參數設定,我們可以通過 terminal.integrated.shellArgs.windows
選項對內置控制台的運行進行參數設定
通過打開“文件”--“首選項”--“用戶設置”,然后在setting.json中設置:
{ "editor.fontSize": 18, "terminal.integrated.shellArgs.windows": ["/K chcp 65001 >nul"], "terminal.integrated.fontFamily": "Lucida Console", }
/K chcp 65001 >nul
的含義是在運行cmd的時候將編碼設置為 65001;
>nul
是避免在控制台輸出修改編碼的信息,否則會輸出 active code page: 65001
;
同時,把字體修改為 Lucida Console