当前位置: 代码迷 >> QT开发 >> 转为UTF8,如何转
  详细解决方案

转为UTF8,如何转

热度:44   发布时间:2016-04-25 04:05:50.0
转为UTF8,怎么转
在网上找了N久了,发现所有的方式都不行,特此求救
问题如下:
main函数里面的饿QTextCodec的内容:

    QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB18030"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030"));

程序中的一个QLineEdit的内容需要转为UTF8编码的const char*
我的解决方案如下:

    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QString UTF_str = codec->toUnicode(ui->nameLineEdit->text().toUtf8());
    QByteArray systax_byte = UTF_str.toLatin1();
    const char* UTF_c = systax_byte.data();

但是最后输出的UTF_c中的内容全是问号,求大神协助,GB怎么转UTF8??
C++ Qt UTF8 GB

------解决方案--------------------
你用这种方式看是否为UTF-8是不可取的吧 
另外 GB18030=GBK?  中文的一般设置的GBK比较多些 
------解决方案--------------------
试试使用qPrintable()宏。
qPrintable()宏其实就是str.toAscii().constData(),你试试看这个方法。
------解决方案--------------------

QByteArray systax_byte=ui->nameLineEdit->text().toUtf8();
const char* UTF_c = systax_byte.data();
这个时候,UTF_c指向就是UTF8格式的char []
------解决方案--------------------
http://blog.csdn.net/wangqis/article/details/4577712

我也遇到编码问题,正在看http://blog.csdn.net/wangqis/article/details/4577712
楼主一同分享
  相关解决方案