Qt处理中文编码出现错误

Qt的QString使用起来非常方便,内部封装了很多很好用的函数和功能。其中有个函数是simplified(), 这个函数可以除去字符串的首尾和内部的空白(空白包括\t,\n,\v,\f,\r,'')。其中Qt帮助文档中说的是移除的ASCII中的\t,\n,\v,\f,\r,''。这里隐藏着一个坑。如果字符串不是完全的ASCII字符串,那么该函数替换上面字符后会改变原字符串的意思。

例如,如果char test[]="this is 张三全". QString(test).simplified()处理之后就会改变test的字符串意思。

发现过程主要是在进行数据库操作的过程中,字段内容包含中文,使用该函数处理后会出现错误。

另外,Qt的sql模块进行数据库操作时,如果操作的字段中包含中文,也会出现类似的操作,导致读写的字段出现错误。

posted @ 2024-07-17 22:26  远桥  阅读(39)  评论(0)    收藏  举报