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模块进行数据库操作时,如果操作的字段中包含中文,也会出现类似的操作,导致读写的字段出现错误。
标签:编码,中文,Qt,错误,test,字符串,函数 From: https://www.cnblogs.com/uuvv/p/18308427