Qt中QString和string互相转换的中文乱码问题
2018-03-14 17:04
531 查看
QString与string相互转换可以用如下方法:
2
数字和QString互相转换:
2
然而QString直接与string相互转换会出现中文乱码问题,为此Qt4中提供了三条语句
2
3
4
但是由于很多程序员完全不考虑这三行代码是否有任何副作用,只要出现乱码就不分青红皂白的使用这三行代码,造成滥用,所以在Qt5中去掉了前两个函数那么应该如何解决中文乱码的问题呢,答案当然是有的,在程序中定义如下两个方法即可
QString::toStdString(); QString::fromStdString();1
2
数字和QString互相转换:
QString::number(); //数字转QString,括号里填数字 toInt(); //QString转数字 qstring.toInt();1
2
然而QString直接与string相互转换会出现中文乱码问题,为此Qt4中提供了三条语句
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); //↑这两个函数在QT5中已被去掉 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));1
2
3
4
但是由于很多程序员完全不考虑这三行代码是否有任何副作用,只要出现乱码就不分青红皂白的使用这三行代码,造成滥用,所以在Qt5中去掉了前两个函数那么应该如何解决中文乱码的问题呢,答案当然是有的,在程序中定义如下两个方法即可
QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(const QString qstr) { QByteArray cdata = qstr.toLocal8Bit(); return string(cdata); }
相关文章推荐
- Qt中QString转string中文乱码问题
- [qt]qstring和string中文支持转换问题
- 【Qt】QString,std::string,char中文字符互相转换
- String与byte[]字节数组中文转换乱码问题
- Qt中的QString和标准c++中的string互相转换
- C++-Qt【5】-QT的QString,char*,QByteArray转化以及中文乱码的问题
- QT处理中文路径名时把QString转换成std::string
- 关于QT 字符转,特别是中文字符 转换出现乱码的问题。
- Qt学习: 如何显示中文,QString和string以及C风格字符串的转换
- 对于Qt中QString和char*之间的互相转换问题(系列二)
- QString转换为const char*(QFileDialog得到的QString文件路径(含中文)转换为fstream可用的const char*文件路径)以及解决Qt中文字符串乱码的一种思路
- QString和string互相转换中文字符
- Qt开发中的实用笔记二--中文转码问题和string转换问题:
- String.getBytes(String charset)中文转换乱码问题
- 解决中文字符乱码问题,如何将gbk格式转换utf-8格式
- 使用Qt Visual Studio Add-in 实现中文ts文件,解决中文乱码问题
- php json与数组转换及中文乱码问题
- qt中关于中文乱码的问题
- 解决springmvc使用@ResponseBody返回String类型字符串中文乱码问题