• 9751阅读
  • 2回复

QString转换成std::string [复制链接]

上一主题 下一主题
离线timleaf
 

只看楼主 正序阅读 楼主  发表于: 2010-06-20
我将中文字符应用QString::fromLocal8Bit("中文")方法读取并存入配置文件,但读取之后应用QString::toStdString()方法无法转换成std::string字符串,试验之后,找到一种方法:即应用QString::toLocal8Bit().data()的方法直接对得到的字符串转换即可得到std::string,
   例如代码:std::string s = qtString.toLocal8Bit().data();
爱你选择的,选择你所爱的……
离线dbzhang800

只看该作者 2楼 发表于: 2010-06-21
1. 首先manual中关于 QString::toStdString 的解析已经很多了。
2. 我们不看manual,单纯看这个问题,QString 是 Unicode 编码,std::string 是char 的序列,二者之间显然不具有一一对应关系。只是ASCII 码的话很好办(这也是toStdString能正确处理的);如果包含中文的话,显然有需要一个编码的过程,比如是编码成utf8,还是gb2312呢?
而 qtString.toLocal8Bit().data() 无非是一个将unicode的汉字进行编码的操作,无论是编码成utf8还是gb2312,显然都可以存入std::string

3. 利用 QString::toStdWString 将 QString 转成 std::wstring 不存在这种问题
离线wd007

只看该作者 1楼 发表于: 2010-06-20
这个不错的说。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个