mingw控制台中文乱码
乱码原因 直接先用一段话讲乱码原因,看不懂老老实实就往下看吧 其实我用Sublime或者VSCode等编辑器写代码出现的控制台中文乱码问题是 编译器mingw输出的数据使用的是UTF-8编码,而控制台用了GBK编码来解析它 。 其实编码只要统一,用UTF8或者GBK都行,但用了错误的编码去解析文件就会出错。 问题来源 如果我们写轻量代码(比如写算法题)也用VS之类的IDE,就太不划算了;虽然也有Codeblocks、Dev C++这样的小一点的IDE,但用起来还是可以发现让人很不爽的缺点。 之前尝试用VS Code写C++代码,挺不错的,好看方便。但问题就是难配置,最大的问题是 控制台中文乱码 ,我搞了好久都没搞好,今天终于解决了。 在网上找到一段话是这么讲的: Windows(中文)默认的字符集是Windows-936(GBK),mingw的内部是GCC,而GCC编译器默认编译的时候是按照UTF-8解析和输出的,当未指定字符集时一律当作UTF-8进行处理,于是造成乱码。 根据上边这段话,我有点灵感,但还是有疑问,见下。 问题分析 我电脑的CMD编码设置的是UTF-8,代码文件的编码也是UTF-8,如果mingw默认按UTF-8处理的话,可以看到这里用的编码全都是UTF-8,那应该不会出现乱码的。 但我们确实看到了乱码啊!? 当我去看我的注册表(见下图),发现代码链接