解决Windows下VSCode控制台乱码问题

这篇具有很好参考价值的文章主要介绍了解决Windows下VSCode控制台乱码问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在Windows使用VSCode编写C/C++程序时,如果代码中的中文字符串使用的是UTF8编码,且代码内没有设置控制台的输出编码,或者编译时没有指定运行时编码(GCC可以在编译时使用-fexec-charset=GBK来指定运行时的字符串编码;clang目前只能是utf-8),则在调试或者运行时,VSCode控制台输出的中文字符可能会为乱码。

目前VSCode中微软官方出品的cppdbg引擎已经是可以正常输出UTF-8字符,不管是使用gdb还是lldb。不过cppdbg引擎使用lldb调试器时,不是直接调用的LLDB API,而是使用的lldb-milldb-mi项目已经很久没人维护了,基本上处于停滞状态。如果想要使用lldb调试器,可以使用CodeLLDB插件,不过该插件是直接使用的Windows的控制台,Windows控制台默认是使用的GBK编码,代码输出UTF8编码的字符串就会出现乱码。

为了一劳永逸地解决VSCode中控制台输出UTF8字符串时乱码的问题,可以在settings.json中添加如下配置:

"terminal.integrated.profiles.windows": {
    "Command Prompt": {
      "path": [
        "${env:windir}\\Sysnative\\cmd.exe",
        "${env:windir}\\System32\\cmd.exe"
      ],
      // CodeLLDB插件,打开此项解决中文输出乱码问题
      "args": ["/K", "chcp 65001>nul"],
      "icon": "terminal-cmd"
    }
}

即在cmd命令行后添加/K chcp 65001>nul或者/K chcp 65001,这样VSCode中启动的控制台全部会使用UTF8编码输出。

注意:这样配置后,会有点冲突的是,如果配置了shell类型的任务,则会报错

参数格式不正确 - /d

比如在tasks.json中配置如下任务:

{
	"version": "2.0.0",
	"tasks": [
		{
			"label": "echo",
			"type": "shell",
			"command": "echo Hello"
		}
	]
}

VSCode实际执行的指令为:C:\Windows\System32\cmd.exe '/K chcp 65001>nul /d /c echo Hello'

解决Windows下VSCode控制台乱码问题,Windows,IDE,# C/C++,windows,vscode,ide,控制台,乱码,console,shell
上述cmd命令参数含义如下:
解决Windows下VSCode控制台乱码问题,Windows,IDE,# C/C++,windows,vscode,ide,控制台,乱码,console,shell

此时需要关闭前面配置的/K参数。在使用Makefile Tools插件编译C/C++项目时,也需要关闭/K参数。文章来源地址https://www.toymoban.com/news/detail-816794.html

到了这里,关于解决Windows下VSCode控制台乱码问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VScode进行C++编程时,控制台输出代码页出现乱码的原理和解决办法

    主要解决三个问题: 1、初学C++的时候,用控制台输出,发现运行到控制台的中文文字和字符全部变成了乱码。为什么呢?这种情况应该怎么解决? 2、编辑器把我们想要输出的内容用UTF-8的方式进行编码进行传输,而控制台收到二进制数据流后用GBK的那一套方式进行解码对应

    2024年02月14日
    浏览(33)
  • Tomcat输出控制台中文乱码问题彻底解决

    目录 文章目录 前言 一、为什么会出现乱码 二、怎么处理乱码问题 1.修改注册表 2.脚步更改配置 三、修改后检查执行 总结         随着互联网的不断发展,软件部署这门技术也越来越重要,很多人在使用Tomcat部署web应用的过程中都遇过诸多的问题,本文就介绍了处理Tomca

    2024年02月08日
    浏览(40)
  • 打 jar 包运行 在windows 平台控制台和日志 乱码解决

    --拒絕鷄巴囉嗦,直接解決問題  我们在Windows下运行jar包时,常常会出现乱码,主要分为dos窗口输出的日志中出现乱码和程序返回数据出现乱码。 dos窗口输出的日志中出现乱码 执行如下命令,将控制台输出编码改为UTF8: 程序返回数据出现乱码 执行如下命令,运行jar包时指

    2024年01月25日
    浏览(37)
  • 当在PyCharm控制台中遇到中文乱码问题时,如何解决?

    解决办法 : 中文乱码问题通常源于编码设置不正确或控制台字体不支持中文字符集。以下是解决这个问题的一些步骤: 1. 更改编码设置 确保您的Python文件中的字符编码与您的控制台编码一致。在Python文件的开头,可以添加以下注释行,指定文件的编码格式: 这将确保Pyth

    2024年02月06日
    浏览(38)
  • 4 种方法完美解决 IntelliJ IDEA Tomcat 控制台中文乱码问题

    上方导航栏“Run→Edit Configurations…”进入配置页面,修改当前 Web 项目 Tomcat Server 的虚拟机输出选项 VM options 添加 -Dfile.encoding=UTF-8 。在重启之后运行程序检查控制台信息,如果不管用请执行下面的步骤。 上方导航栏“File→Settings…”进入配置页面,在“Editor”中下滑找到“

    2024年02月16日
    浏览(35)
  • IntelliJ IDEA 统一设置编码为utf-8编码 及 SpringBoot 打 jar 包运行 在windows 平台控制台和日志 乱码解决

    最新在做小程序支付项目,在本地环境和linux 环境部署上运行没有问题,但是部署到window 环境,请求易通支付接口时,对方返回 Try again later!io.vertx.core.json.Json.decodeValue(Json.java:168) 意思是 编码格式出错,对方技术人员也说大概率是编码的问题,需要UTF-8。 所以打算抽出一下午

    2024年02月15日
    浏览(34)
  • idea-控制台输出乱码问题

    现象描述: 今天在进行IDEA开发WEB工程调式的时候控制台日志输出了乱码,如下截图 其实开发者大多都知道乱码是 编码不一致导致的,但是有时候就是不知到哪些地方不一致,今天我碰到的情况可能和你的不相同 解决方案 : 点击help = edit custom vm options 打开这个文件 末尾追

    2024年02月16日
    浏览(36)
  • Jenkins:控制台中文乱码问题处理

    简介 :Jenkins的定时任务控制台在不适当的时候中控制台可能会出现中文乱码展示的问题,如何解决控制台乱码使得界面更直观准确,其实只需增加一个全局变量值即可解决问题。 历史攻略: 定时任务:Jenkins centos7.6:安装jenkins Jenkins+Gitee自动化部署 centos7:docker快速安装j

    2024年02月11日
    浏览(35)
  • idea 控制台 打印 Tomcat日志Tomcat Catalina Log控制台乱码问题

    修改tomcat的日志配置文件 conf一logging.properties 修改【1catalina.org.apache.juli.AsyncFileHandler.encoding】的值为gbk

    2024年02月14日
    浏览(43)
  • 安卓AndroidStdio控制台乱码解决

    情况: 在AndroidStudio中新建了一个Java Module,但是点击 Run ‘app’之后,Build Output 控制台输出的中文都是乱码,都是问号一样的字符 第一个解决方案 File Encodings 改为UTF-8? 没用! 第二个解决方案 build.gradle 添加如下代码? 正确解决办法 双击Shift,输入vmoption,,选择Edit Custom

    2024年02月20日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包