资料上说,QT中QString都是使用的Unicode编码的。
在windows系统(假设System编码是GBK)的Qcreator中,先进行如下设置:
QTextCodec *codec = QTextCodec::codecForName("System");
QTextCodec::setCodecForCStrings(codec);
然后:
QString testString = "我是汉字"
这个时候,能正常显示testString为“我是汉字”。
我想问的是:testString中存储的是Unicode编码的“我是汉字”,还是System(GBK)编码的“我是汉字”?
或者换个角度问:以System(GBK)编码的源文件中,“我是汉字”的编码十六进制为:ce d2 ca c7 ba ba d7 d6;而保存到QString testString中的却是“我是汉字”的Unicode编码的十六进制。即其中有一个编码转换的过程。
不知道我描述清楚了么?请达人解答。
另:我在debug的过程中,看不到QString的二进制数据,本来想直接看存储到testString中的二进制数据,看看是不是Unicode编码的,却看不出是什么编码,很是纳闷。。。