在做界面开发的时候,相信很多人都遇到过这样的问题:在交互界面上做中文输入时,看起来没什么毛病,但是一但有数据的传输,与Linux操作系统或者是数据库有数据交互时,我们输入的中文将会变成一堆的??????,亦或是一堆方块加菱形,亦或是一堆谁也不认识的看起来像繁体字一样的东西。这个时候,百度一下,你就知道这是由于汉字编码规范不一致导致的乱码。文中通常都会指点出做如下处理:
QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
或是:
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
在main.cpp文件中做出复制粘贴如上代码段以后再进一步搜索,我们可以知道: