博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt中将QString转换为char *或者相反
阅读量:7031 次
发布时间:2019-06-28

本文共 1816 字,大约阅读时间需要 6 分钟。

1.将QString转换为std::string,可以通过QString的成员函数toStdString()  QString Qstr="123";std::string str=Qstr.toStdString();2.将QString转换为char *或者相反直接转换不行,因为QString没有提供直接的成员函数,但是可以通过QByteArray中转一下,例如:int main(int argc, char **argv){     QApplication app(argc, argv);     QString str1 = "Test";     QByteArray ba = str1.toLatin1();     const char *c_str2 = ba.data();     printf("str2: %s", c_str2);     return app.exec();    }还有其他多种方法:方法一 -----------------------------------------#define G2U(s) ( QTextCodec::codecForName("GBK")->toUnicode(s) )#define U2G(s) ( QTextCodec::codecForName("GBK")->fromUnicode(s) )QString str;QCString cstr;str = G2U("中文输入");cstr = U2G(str);QCString有这样一个重载运算符operator const char * () const可以这样printf("%s\n", (const char*) cstr);或是copy出来char buf[1024];strcpy(buf, (const char*) cstr);方法二 -----------------------------------------如果是中文系统 直接用   (const char*) str.local8Bit()例如printf("%s", (const char*) str.local8Bit());str是一个QString方法三 -----------------------------------------char str[64];QTextCodec *textcod = QTextCodec::codecForName("GBK");        QCString string1 = textcod ->fromUnicode(listbox1->currentText());        strcpy(str,string1);QString和Std::string从char*到 QString可以从fromLocal8Bit()转化std::string有c_str()的函数使再转化为char*QString有toAscii()记不清了你可以看看.又是我的粗心酿成大错,我重新查看了一下Qt文档,原来Qt可以直接从std::wstring产生一个QString,用QString::fromStdWString(const std::wstring &)这个静态成员函数即可。我试了试用std::string的c_str()返回的char *构造的QString不能再保存原先的中文信息,而用std::wstring构造的QString则可以用qDebug()输出原先的中文信息GB编码与UTF8编码的转换在主函数app后加上这句:QUOTE:QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030"));然后是从UTF8编码到GB编码的字符串转换方法:QUOTE:QString Utf8_To_GB(QString strText){    return QString::fromUtf8(strText.toLocal8Bit().data());}至于从GB到UTF8,那大家就经常用了:QUOTE:QString GB_To_Utf8(char *strText){    return QString::fromLocal8Bit(strText);}

 

转载地址:http://pzgxl.baihongyu.com/

你可能感兴趣的文章
【Udacity】朴素贝叶斯
查看>>
shader 讲解的第二天 把兰伯特模型改成半兰泊特模型 函数图形绘制工具
查看>>
python3.5安装Numpy、mayploylib、opencv等额外库
查看>>
优雅绝妙的Javascript跨域问题解决方案
查看>>
Java 接口技术 Interface
查看>>
函数草稿
查看>>
织梦系统学习:文章页当前位置的写法(自认对SEO有用)
查看>>
PHP经验——PHPDoc PHP注释的标准文档(翻译自Wiki)
查看>>
vue input输入框长度限制
查看>>
深入理解Java虚拟机(类加载机制)
查看>>
在500jsp错误页面获取错误信息
查看>>
iOS-CALayer遮罩效果
查看>>
为什么需要版本管理
查看>>
五、Dart 关键字
查看>>
React Native学习笔记(一)附视频教学
查看>>
记Promise得一些API
查看>>
javascript事件之调整大小(resize)事件
查看>>
20145234黄斐《Java程序设计》第六周学习总结
查看>>
【CLRS】《算法导论》读书笔记(四):栈(Stack)、队列(Queue)和链表(Linked List)...
查看>>
hibernate 和 mybatis区别
查看>>