大连全瓷种植牙齿制作中心 发表于 2024-6-12 05:47:46

QT4-QT5升级(3)GBK-UTF-8-乱码“常量中有换行符”

乱码有两种:我命名为汉字乱码+菱形乱码如下:
1.文件编码为:    GB2312
打开编码:           GB2312
编译后:               QString    部分字符串  常量中有换行符            
                             char *       部分字符串  常量中有换行符 
https://img-blog.csdnimg.cn/direct/4956e91092eb481eae04115306078f6a.png

在错误字符后添加“11”后编译成功:
文件编码格式:GB2312
debug命令:无/utf-8
                     QString:菱形乱码
                    char*:  正常
https://img-blog.csdnimg.cn/direct/dc958fa6ef384224832727442396a4c5.png
对于菱形乱码:先把文件编码改成UTF-8,再修改编译过程中的错误。
 

2.文件编码为:      UTF-8
  打开编码:          UTF-8
  debug命令:       无/utf-8
  编译后:               QString    部分字符串  此字符不允许在标识符中利用            
                               char *       部分字符串  常量中有换行符 
https://img-blog.csdnimg.cn/direct/7db88d6dc5134b76a317ca0bfcae4f4c.png
修改可编译后:
原始文件编码为: UTF-8
打开编码:           UTF-8
debug:              QString          部分字符串  不识别 比如“表”
                            char *            汉字乱码     
https://img-blog.csdnimg.cn/direct/5a02d8188afa452ba8c07c531628f7b9.png
对于 汉字乱码:先把文件编码改成GB2312,再修改编译过程中的错误。

文件编码转换用notepad
结论:
假如用的变量是QString 文件用UTF-8编码
假如用的变量是char* 文件用GB2312编码
对于UTF-8 下 QString 不识别的字符:可以用英文更换,大概换汉字
对于GB2312  char*     不识别的字符:  更换掉


notes:

1.“->“: 非函数声明符后不允许尾随返回类型
https://img-blog.csdnimg.cn/direct/66c1060b4cc245c3968c049b920b63ca.png

2.VS2019 创建文件时:编码为GB2312,
                编译时:UTF-8

原始为GB2312下输入的中文是不被识别的。
文件格式转换方法:notepad 转换
 
3.常量中有换行符
https://img-blog.csdnimg.cn/direct/0ed90b0852e84228a496972cabbd4b1b.png



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: QT4-QT5升级(3)GBK-UTF-8-乱码“常量中有换行符”