栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

让Windows CMD默认使用UTF-8代码页,解决一切恼人乱码问题!

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

让Windows CMD默认使用UTF-8代码页,解决一切恼人乱码问题!

问题描述

中文Windows自带的命令行程序默认都是使用的936代码页,也就是GBK的编码,因此当程序以UTF-8编码输出文本时,就会看到乱码:

该问题在自己写的C/C++程序中最常见,当源文件以UTF-8编码时,用printf、std::cout等方法打印出来的全都显示乱码,关于C/C++的编码问题可以参见此前的一篇博客。不仅如此,一些间接依赖于Windows原生命令行的程序也会产生乱码问题,例如VS Code的内置终端、Qt Creator等:

这个问题还会导致“字体”选项卡中没有多少选项,使得我们没法用自己安装的等宽字体,使得命令行用起来非常难受……

解决方案

要想从根本上解决问题,必须修改命令行的默认编码,其默认编码是默认跟随系统语言配置的,今天我终于在Windows的语言设置里找到了这个选项:

  1. 打开设置,进入语言页面:

  2. 点击“管理语言设置”,再点击对话框上的“更改系统区域设置”:

  3. 勾选下图中的选项:

  4. 重启电脑,然后你就会神奇地发现CMD和Powershell的代码页都默认变为65001了!

注意事项

Stackoverflow上流传一种往注册表里写入@chcp 65001的方案,亲测这种办法没法解决根本问题,而且会导致原来不乱码的程序变乱码!

https://stackoverflow.com/questions/14109024/how-to-make-unicode-charset-in-cmd-exe-by-default

相关文献
  1. 修改Windows控制台默认代码页编码的几种方法
  2. How to set the text encoding within the “Application Output” window?
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号