在网上找了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(),你试试看这个方法。
------解决方案--------------------
这个时候,UTF_c指向就是UTF8格式的char []
QByteArray systax_byte=ui->nameLineEdit->text().toUtf8();
const char* UTF_c = systax_byte.data();
------解决方案--------------------
http://blog.csdn.net/wangqis/article/details/4577712
我也遇到编码问题,正在看http://blog.csdn.net/wangqis/article/details/4577712
楼主一同分享