QT-Yaml-cpp使用QString转stdString中文乱码问题

简介

     直接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(...) {   },看了源码你就知道了, 将异常直接抛出, 你接不接招, 不接就完蛋...

猜你喜欢

转载自blog.csdn.net/halo_hsuh/article/details/105047774
今日推荐