网上各种说法,我来讲讲我的看法。
对于QString 的
toLocal8Bit()
是将QString以自己正确的编码方式读取并转换成编译器编码方式的字节流,
而string本身就是字节流没有编码方式,等需要他时编译器会以编译器的编码读取方式读取并且没什么问题,至于显示是否是乱码得看很多东西,string本身应该读取的编码方式是否就是编译器的编码方式,是否也是系统默认的编码方式。
我是在Qt Creator 里调试发现就算执行了这句然后用.data()转化成string,调试器还是显示string是乱码,那是因为调试器的编码方式和编译器可能不一样,不用在意,程序是不会出错的。
像QTextCodec的调控我就没加发现也没关系。顺便说一句,
我之前的QString页面用到了
#pragma execution_character_set("utf-8")
以上是真实经历和个人看法,不喜勿喷!