问题背景
最近在修改课程设计时,遇到了C++中文字符乱码问题(如Ż)。这种问题主要源于字符编码不一致、编译器处理差异及终端支持不足。本文将深入探讨问题根源并提供多种解决方案。
乱码原因
编码不一致性问题
- 源文件编码:源代码以UTF-8保存,但编译器默认使用ANSI(即GBK)编码解析
- 文件读写编码:文件写入使用UTF-8,读取时却使用ANSI编码
- 控制台编码:Windows命令提示符默认GBK编码,与程序输出编码不一致
可以通过cmd来查看电脑的输出格式:Win+R cmd

输入:CHCP

936表示电脑默认是GBK格式
解决方案
方案1:修改读取文件的编码格式(最为推荐)
用记事本打开需要读取的文件:

将文档另存为(注意不要修改文件命名和后缀),选择编码格式为ANSI

然后重新打开程序测试就可以了,如下为修改前后对比图:
修改前

修改后


