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