简介
直接QString 调用 toStdString, 发现出现了中文乱码
解决:
std::string stdString;
QString qString = "C:/新建文件夹/yaml.yml";
// std::string 转 QString
//qString = QString(QString::fromLocal8Bit(stdString.c_str()));
// QString 转 std::string
stdString = std::string(const_cast<const char *>(qString.toLocal8Bit().constData()));
// 将转化好的 stdString 传给Yaml 即可解决中文乱码问题
YAML::Node node = YAML::LoadFile(stdString);
Note:
无论如何, 使用Yaml::LoadFile 时一定要 try() { } catch(...) { },看了源码你就知道了, 将异常直接抛出, 你接不接招, 不接就完蛋...