vscode终端中文乱码问题的解决方案合集c++
vscode終端中文亂碼問題的解決方案合集c++
- 解決思路:
- 解決方法:
- 1.修改系統(tǒng)區(qū)域設(shè)置
- 2.修改編輯器默認編碼
- 3.改變vscode終端編碼
- 4.修改vscode終端默認編碼
- 6.修改tasks.json
解決思路:
亂碼的出現(xiàn)一般是由于編碼錯誤。在編輯器上正確顯示的中文字符,卻在終端編譯出現(xiàn)亂碼,這一般是因為vscode編輯器默認編碼utf-8,而終端使用了gbk編碼。總之出現(xiàn)亂碼基本就是編碼沒對。另外這些方法一般是在vscode集成的終端中進行調(diào)試的。(但實際上我是真的分不清那些是integrated那些是 external,反正就是在那個地方,集成在vscode上而不是額外的命令控制臺窗口)
解決方法:
1.修改系統(tǒng)區(qū)域設(shè)置
這應(yīng)該是最容易搜索到的方法。在win10系統(tǒng)下使用組合win+r輸入control打開控制面板,依次選擇時鐘和區(qū)劃–區(qū)域–管理–更改系統(tǒng)區(qū)域設(shè)置,勾選 “Beta 版:使用…” ,最后根據(jù)提示重新啟動。
這個方法弊端很明顯,這樣修改原來使用gbk編碼的文件打開就會亂碼,某些游戲打字也會出現(xiàn)錯誤。
參考:https://blog.csdn.net/weixin_40040107/article/details/103721554
2.修改編輯器默認編碼
這是第二種容易找到的方法。主要是將vscode編輯器的文字編碼改為gbk。點擊編輯器右下的UTF-8,再找到頂部搜索欄通過編碼重新打開,選擇 Simplified Cninese(GB 2312) 編碼。
參考:https://blog.csdn.net/qq_39400113/article/details/107908848
當(dāng)然也可以修改編輯器默認編碼為gbk,參考下面這篇文章的第二種方法。
參考:https://blog.csdn.net/weixin_43745075/article/details/106291285
又或者你從其它地方找來的代碼編碼為UTF-8,那你可以試試vscode的GBKtoUTF8插件
參考:https://blog.csdn.net/sinat_27985193/article/details/105228725
3.改變vscode終端編碼
在vscode終端 輸入chcp 可以查看當(dāng)前編碼,一般powershell為UTF-8,cmd為gbk。
接著輸入 chcp 65001 ,將編碼改為UTF-8(因為代碼為UTF-8編碼)。之后就可以運行編譯,鏈接成功的.exe文件。雖然是一次性的。
參考:https://blog.csdn.net/weixin_43745075/article/details/106291285
實際在編譯成功后"shift+ctrl+c"可以喚出默認配置的終端,默認是powershell。那么按照相似的操作也可以運行程序。
ps:輸入cls可以清屏,這一點cmd和powershell是一致的。
4.修改vscode終端默認編碼
這個方法運行調(diào)試時在集成終端運行。代碼的內(nèi)容主要是修改了集成終端的編碼格式。
在vscode中依次打開 文件 首選項 設(shè)置 在 setting.json 中編輯。
之后將以下代碼粘貼并保存。
所有setting.json都是一樣的,實際也只有一個setting.json。在vscode中要還原默認設(shè)置只需要刪除setting.json中的內(nèi)容
參考:https://blog.csdn.net/lzyws739307453/article/details/89823900
注意 如果你需要使用 tasks.json ,而且里面需要用到 “type”: “shell” ,會在終端顯示這個 參數(shù)格式不正確 - -Command。我的方法是直接注釋掉這一行。
參考:https://www.zhihu.com/question/318656467具體參見這個問題里"樹影"答主的回答。
5.修改注冊表
這個方法就比較偏了,但是能解決另一種情況。
推薦vscode C++環(huán)境配置博客 https://www.cnblogs.com/baihualiaoluan/p/10661669.html
首先如果你配置c++環(huán)境的時候是按照如上鏈接類似方法配置的,并且在laouch.json中有如下代碼
"externalConsole":true,//修改此項,讓其彈出終端那么這個彈出的命令控制臺的編碼無法通過以上3,4方法改變,改cmd的注冊表也不行(方法1確實可以,畢竟是全局影響)。
這時候先編譯好.cpp文件, 找到對應(yīng).exe文件目錄并復(fù)制 ,之后使用 win+r 組合鍵輸入 regedit 進入注冊表,打開
計算機\HKEY_CURRENT_USER\Console 目錄,新增 項 x:_文件路徑_執(zhí)行文件名.exe,新建DWORD(32位),參數(shù)65001(在十進制下)。
這時候UTF-8的代碼就可以正確運行了。
ps:另外如果要修改cmd的默認編碼,一般搜索到的結(jié)果都是讓添加autorun。其實可以在計算機\HKEY_CURRENT_USER\Console目錄下直接新建%SystemRoot%_system32_cmd.exe項,并以相同的方式新建CodePage,來修改默認編碼。這種方式的區(qū)別在于的確是默認編碼,而不是自動執(zhí)行命令。
參考:https://blog.csdn.net/seraph0321/article/details/86411453
6.修改tasks.json
與第5種方法情況一樣,但這種方法只需要在tasks.json的args項下添加一行"-fexec-charset=gbk"即可
"args": ["-fexec-charset=gbk","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],
這個時候,雖然我的代碼是UTF-8,彈出的命令提示窗口任是GBK編碼,但任然正確輸出了。~真正的高效,優(yōu)雅。
參考:https://blog.csdn.net/weixin_43802844/article/details/111170738
總結(jié)
以上是生活随笔為你收集整理的vscode终端中文乱码问题的解决方案合集c++的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超宽带 DWM1000模块 引脚连接
- 下一篇: 关于Eclipse优化记录