Qt 5以上关于中文乱码解决

来源:互联网 发布:js设置页面自动刷新 编辑:程序博客网 时间:2024/06/08 07:03
          Qt 5以上关于中文乱码解决
1 cpp文件编码格式和程序运行字符串解析时用的编码格式两个概念,但是cpp文件编码会影响到程序运行时的解析,所以建议将文件编码格式和程序运行字符串解析时用的编码格式设置成一致。这样可以避免中文乱码


也就是说编译器在编译的时候根据文件的编码格式,编译生成的信息,程序运行时要对字符串进行解析,那么就要设置字符串解析时用的编码格式就要和编译生成信息的编码格式一样,不然就乱码了,如果不设置字符串解析时用的编码格式,就会用默认的编码格式去解析。(个人理解,说的不对请指正) 


还要看编译器mingw默认是utf-8的,msvc默认的是ANSI


2首先需要了解的是 qt creator使用的是什么编译器 mingw 还是mvsc
(1) msvc编译的文件是ANSI,而QString默认的编码格式unicode的,因此必须QString进行转码才能显示中文。
(2) mingw编译的文件编码格式默认的是utf-8,如果文件编码格式是utf-8,那么就不需要再进行转码了(为什么)
问题:为什么QString的编码格式是unicode,而文件编码格式是utf-8能正常解析呢?
答案:unicode是个大类,包括utf-8格式、utf-16等格式(别人的解释)


3、乱码常见情况:
(1)文件编码格式 和 程序中字符串转码的格式不一致。
比如:文件编码是ANSI,字符串转码成utf-8


如何查看文件和修改编码格式http://jingyan.baidu.com/article/ae97a646d0ddd4bbfc461d6b.html




Qt creator修改文件编码说明:
 
这里说明你在qt creator一开始创建文件编码格式,如果你之后修改了项目中的文件编码格式,那么它显示的还是创建文件编码格式,而不是修改后的文件编码格式。因此这里的作用是设置开始创建项目时文件的编码格式,再文件项目文件被创建后,就不能通过这里修改文件编码格式。如果要修改 参照http://jingyan.baidu.com/article/ae97a646d0ddd4bbfc461d6b.html
原创粉丝点击