qt使用write写入中文时,会出现少写的情况

write(buf,str.length());

length()获取字符长度,一个中文也会被当成一个字符。正常情况下,一个中文大小为2个字符。

qt的length()返回的是字符数量,不是字符串大小。

解决办法:将中文转为8bit编码,  .toLocal8Bit().length()

先将中文转码之后,再求length就是字符大小。

你可能感兴趣的:(qt)