QT应用程序 安装路径中文异常问题

【1】QT 安装中文路径启动异常问题函数

最近在搞一个很简单的QT应用程序,开发环境VS2017 + QT5.9,线上异常报错:安装中文路径下启动崩溃~~~~编码

最后,本地调试Debug版本,发现安装中文路径下,安装路径为乱码,致使加载翻译文件、建立日志文件、加载动态库等等均失败。spa

对我而言,新发现新问题,先问度娘。尝试了不少解决方案,最终都以失败了结。翻译

于无望处,忽然柳暗花明,在一个帖子上看到这么一句话:调试

Qt中用于控制读出和写入文件系统时的字符编码由 QTextCodec::setCodecForLocale() 所决定。日志

加入 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); 问题解决code

固然,记得先添加头文件:#include <QTextCodec>接口

编译、启动、成功。再自测。开发

自测发现利用log4cpp模块建立日志文件时,须要利用std::string类型的参数。string

可是,QSting类型直接利用toStdString()接口转换为std::string类型后,函数返回异常,没有成功建立日志文件。

再继续寻根问因,后来,发现须要进行一下中文转换:

QTextCodec::codecForName("gb18030")->fromUnicode(logFileName).data()

如上,这样转换后是std::string类型参数传入函数,建立日志文件正常。

再编译、启动、运行一切正常。

特此备录。仅供参考。具体环境,具体分析。

 

Good Good Study, Day Day Up.

顺序 选择 循环 总结

相关文章
相关标签/搜索