qt 中文路径QString转std::string

这里是qt调用了vs编译的dll,dll的接口时传入std::string。

将QString 转成 string(如 qstr.toStdString()),传入到dll中,结果在dll中中文成乱码了。

说明:我qt编译器是msvc-2015的,qt中的文件时utf-8的(不带bom),且QString在转成string前打印是正常的。

后来通过下面转换可以了:

1 QString filepath = "对方是否";//实际应用中,我的filePath是文件对话框返回的
2 QTextCodec::codecForName("gb18030");
3 std::string path = code->fromUnicode(filePath).data();

 

另外,中文乱码的内容可参考:https://www.cnblogs.com/warmlight/p/12341673.html

 

posted @ 2020-07-02 17:41  阳光下的小土豆  阅读(1034)  评论(0编辑  收藏  举报