vscode终端中文乱码问题的解决方案合集c++

解决思路:

乱码的出现一般是由于编码错误。在编辑器上正确显示的中文字符,却在终端编译出现乱码,这一般是因为vscode编辑器默认编码utf-8,而终端使用了gbk编码。总之出现乱码基本就是编码没对。另外这些方法一般是在vscode集成的终端中进行调试的。(但实际上我是真的分不清那些是integrated那些是 external,反正就是在那个地方,集成在vscode上而不是额外的命令控制台窗口)

解决方法:

1.修改系统区域设置

这应该是最容易搜索到的方法。在win10系统下使用组合win+r输入control打开控制面板,依次选择时钟和区划区域管理更改系统区域设置,勾选 “Beta 版:使用…” ,最后根据提示重新启动。
更改系统区域设置
这个方法弊端很明显,这样修改原来使用gbk编码的文件打开就会乱码,某些游戏打字也会出现错误。

参考: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

当然也可以修改编辑器默认编码为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 可以查看当前编码,一般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终端默认编码

这个方法运行调试时在集成终端运行。代码的内容主要是修改了集成终端的编码格式。
在vscode中依次打开 文件 首选项 设置setting.json 中编辑。
之后将以下代码粘贴并保存。

"terminal.integrated.profiles.windows": {
        "PowerShell": {
          "source": "PowerShell", //一般推荐使用powershell
          "overrideName": true,
          "args": ["-NoExit", "/c", "chcp 65001"],
          "icon": "terminal-powershell",
          "env": {
            "TEST_VAR": "value"
          }
        }
      },
    "terminal.integrated.defaultProfile.windows": "PowerShell",

所有setting.json都是一样的,实际也只有一个setting.json。在vscode中要还原默认设置只需要删除setting.json中的内容
参考:https://blog.csdn.net/lzyws739307453/article/details/89823900

注意 如果你需要使用 tasks.json ,而且里面需要用到 “type”: “shell” ,会在终端显示这个 参数格式不正确 - -Command。我的方法是直接注释掉这一行。

参考:https://www.zhihu.com/question/318656467具体参见这个问题里"树影"答主的回答。

5.修改注册表
这个方法就比较偏了,但是能解决另一种情况。

推荐vscode C++环境配置博客 https://www.cnblogs.com/baihualiaoluan/p/10661669.html

首先如果你配置c++环境的时候是按照如上链接类似方法配置的,并且在laouch.json中有如下代码

   "externalConsole":true,//修改此项,让其弹出终端

那么这个弹出的命令控制台的编码无法通过以上3,4方法改变,改cmd的注册表也不行(方法1确实可以,毕竟是全局影响)。

这时候先编译好.cpp文件找到对应.exe文件目录并复制 ,之后使用 win+r 组合键输入 regedit 进入注册表,打开
计算机\HKEY_CURRENT_USER\Console 目录,新增 项 x:_文件路径_执行文件名.exe新建DWORD(32位),参数65001(在十进制下)。
在这里插入图片描述
可以看到编码为65001
这时候UTF-8的代码就可以正确运行了。

ps:另外如果要修改cmd的默认编码,一般搜索到的结果都是让添加autorun。其实可以在计算机\HKEY_CURRENT_USER\Console目录下直接新建%SystemRoot%_system32_cmd.exe项,并以相同的方式新建CodePage,来修改默认编码。这种方式的区别在于的确是默认编码,而不是自动执行命令。

参考: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编码,但任然正确输出了。~真正的高效,优雅。

参考:https://blog.csdn.net/weixin_43802844/article/details/111170738

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值