首页 > 其他 > 详细

string与QString转换(string既可以是utf8,也可以是gbk)

时间:2017-01-23 23:51:45      阅读:674      评论:0      收藏:0      [点我收藏+]

AtUtf8.h

 

[cpp] view plain copy
 
 技术分享技术分享
  1. #ifndef _QT_UTF8_H  
  2. #define _QT_UTF8_H  
  3.   
  4. #include <QString>  
  5. #include <string>  
  6. using std::string;  
  7.   
  8. class AfUtf8  
  9. {  
  10. public:  
  11.     // QString(Unicode) -> std::string (UTF8)  
  12.     static string ToString(const QString& qstr)  
  13.     {  
  14.         QByteArray arr = qstr.toUtf8();  
  15.         string cstr = arr.data();  
  16.         return cstr;  
  17.     }  
  18.   
  19.     // std::string (UTF8) -> QString(Unicode)  
  20.     static QString ToQString(const string& cstr)  
  21.     {  
  22.         QString qstr = QString::fromUtf8(cstr.c_str(), cstr.length());  
  23.         return qstr;  
  24.     }  
  25. };  
  26. #endif  

 

 

AtGbk.h

 

[cpp] view plain copy
 
 技术分享技术分享
  1. #ifndef _QT_GBK_H  
  2. #define _QT_GBK_H  
  3.   
  4. #include <QString>  
  5. #include <QTextCodec>  
  6. #include <string>  
  7. using std::string;  
  8.   
  9. class AfGbk  
  10. {  
  11. public:  
  12.     // QString(Unicode) -> std::string (GBK)  
  13.     static string ToString(const QString& qstr)  
  14.     {  
  15.         QTextCodec* pCodec = QTextCodec::codecForName("gb2312");  
  16.         if(!pCodec) return "";    
  17.   
  18.         QByteArray arr = pCodec->fromUnicode(qstr);  
  19.         string cstr = arr.data();  
  20.         return cstr;  
  21.     }  
  22.   
  23.     // std::string (GBK) -> QString(Unicode)  
  24.     static QString ToQString(const string& cstr)  
  25.     {  
  26.         QTextCodec* pCodec = QTextCodec::codecForName("gb2312");  
  27.         if(!pCodec) return "";  
  28.   
  29.         QString qstr = pCodec->toUnicode(cstr.c_str(), cstr.length());  
  30.         return qstr;  
  31.     }  
  32.   
  33. };  
  34. #endif  

http://blog.csdn.net/bladeandmaster88/article/details/53469959

string与QString转换(string既可以是utf8,也可以是gbk)

原文:http://www.cnblogs.com/findumars/p/6345115.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!