首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

本机上运作正常,换到其他机器上就出中文乱码

2013-03-26 
本机上运行正常,换到其他机器上就出中文乱码编写了一个读ini文件的小程序有Codecs的设置,发布的时候也加了

本机上运行正常,换到其他机器上就出中文乱码
编写了一个读ini文件的小程序
有Codecs的设置,发布的时候也加了codecs文件夹,里边有个叫qcncodecs4.dll的文件。
然后创建文件夹,
qDebug()<<path;
QDir dir;  dir.mkpath(path);
在本机上运行一切正常,在别的电脑上运行就显示乱码,创建的文件夹也是乱码。

int main()
{
    QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb18030"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));
    //读配置文件的类
    ini_config_t ini;
    ini.read("config.ini");
    qDebug()<<QObject::tr("路径=")<<ini.path;
    QDir dir;
    dir.mkpath(ini.path);
}
int ini_config_t::read(QString filename)
{
    QSettings ini(filename,QSettings::IniFormat);
    ini.setIniCodec(QTextCodec::codecForName("gb18030"));
    path=ini.value("/PATH/path","").toString();
    return 0;
}


[解决办法]
1) 你读ini应该不是用的Qt自带的QSettings吧,我记得以前4.4版本测试的时候,QSettings不支持中文,不过看你本机显示正常,应该是没问题的

2) Qt推荐的目录plugins/codecs/qcncodecs.dll
 QApplication a(argc, argv);
    QApplication::addLibraryPath("./plugins");
    QTextCodec::setCodecForTr (QTextCodec::codecForName ("GBK"));
[解决办法]
可能是另一台机器上没有使用的字体。

热点排行