c语言控制台输出中文乱码解决方案
现象:
使用编辑器+mingw64时(而Dev c++则不会),编码格式为UTF-8,printf输出的中文乱码。(如果是中文目录,gdb将报错,也是同样原因)
解释:
Windows系统终端默认输出GBK编码,而文本编辑器中使用UTF-8,编码不一致导致异常。(在Dev c++中保存为GB2312,在终端中显示正常。
解决方法:
1.更改Windows终端输出编码格式
如图所示,点击“更改系统区域设置”,再勾选Beta版并确定。Windows终端将会以UTF-8输出内容。
可能的弊端:部分程序兼容出现问题,字体乱码,运行异常。(如图吧工具箱)
2.直接修改.c源文件
增添头文件<windows.h>和调用API函数SetConsoleOutputCP(65001),使Windows终端输出正确。
1 |
|
3.在文本编辑器内手动更改编码
此方法不推荐(麻烦),根据不同文本编辑器操作亦有不同。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.