请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

文件编码为UTF-8,使用Debug-MinGW编译后输出宽字符'中'为乱码

老师您好,跟着您上课的步骤把文件编码改为GBK后使用vs的debug编译运行输出宽字符'中'完全没有问题,如下图:

https://img1.sycdn.imooc.com//szimg/605602800910051604140116.jpg

但是我自己平常练习都在使用C11,所以默认都会用Debug-MinGW来编译,您课程最后说如果文件为GBK编码来编译会报错,确实是这样,如下:

https://img1.sycdn.imooc.com//szimg/6056031209557a8812890214.jpg

当我切换回UTF-8编码以后编译通过,不过输出为乱码如下图,请问要怎么解决呢?

https://img1.sycdn.imooc.com//szimg/6056038509b5a15004150132.jpg


正在回答 回答被采纳积分+3

1回答

bennyhuo 2021-03-21 00:09:20

估计是因为控制台的编码是gbk。。。。windows上搞开发就是比较折腾。。

0 回复 有任何疑惑可以回复我~
  • 提问者 Macrohard #1
    确实可能是这个原因,因为之前我代码中printf中有中文的提示,UTF-8输出是乱码,所以文件编码改成GBK,可以正确输出。但是用断点debug模式的时候(MinGW)在debug的控制台,反过来GBK输出是乱码,我觉得很奇怪,就百度了一下,也有人说是因为CLion中文件和控制台的编码不是一致的,但是没说咋解决。。。所以请问这个问题暂时就无解了嘛。。。
    回复 有任何疑惑可以回复我~ 2021-03-21 12:14:47
  • bennyhuo 回复 提问者 Macrohard #2
    可以试试在命令行直接运行,确认下是不是编码问题。命令行可以通过 chcp 65001切换到utf8,chcp 936切换到gbk。
    
    切换之后试试看是不是编码问题。
    
    然后你在clion的run configuration 里面找一下看有么有编码设置,有的话改一下,没的话估计就比较麻烦了。
    回复 有任何疑惑可以回复我~ 2021-03-23 07:58:53
  • bennyhuo 回复 提问者 Macrohard #3
    另外,MinGW 在编码这块儿主要是因为对 locale 支持得有问题,所以中文是有点儿麻烦。你可以把你的测试代码完整的贴出来,我也帮你试试看。
    回复 有任何疑惑可以回复我~ 2021-03-23 09:50:11
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信