QTextCodec *codec = QTextCodec::codecForName("GBK"); QString string = codec->toUnicode(encodedString); 1. 2. 3. 同样的,如果现在有一组unicode字符串需要转为GBK码数据,那么就是这样: QString string = "..."; QTextCodec *codec = QTextCodec::codecForName("GBK"); QByteArray encodedString ...
QCoreApplication a(argc, argv);//要做编码转换,先从QByteArray转到Unicode QString,往往手头上拿到的是QString//那么首先要把QString转成相应编码格式下QByteArray//QString如何转到相应编码格式下的QByteArray,也就是十六进制QByteArray localChinese="这是中文"; qDebug()<<""<<localChinese;//"\xD5\xE2\x...
int size = bytes.size(); 3 使用QTextCodec类实现编码<pre name="code" class="cpp">// QString(Unicode) ‐> std::string (GBK) static string FromUnicode(const QString& qstr) { QTextCodec* pCodec = QTextCodec::codecForName("gb2312"); if(!pCodec) return ""; QByteArray arr = pCode...
QStringunicode=utf8->toUnicode(encode,6);//通过UTF-8编码对象将啊哈转为utf-16 QTextCodec*gbk=QTextCodec::codecForName("GBK");//获取GBK编码对象 QByteArrayarr=gbk->fromUnicode(unicode);//从Unicode编码转为自身编码类型(GBK) qDebug()<<QString::fromLocal8Bit(arr);//打印GBK码 qDebug()<<a...
如果你是想在代码中做静态的QString,可以这样QString t = QString::fromLocal8Bit("中文");这样得到的t应该是unicode的,然后可以t.toUtf8()得到一个QByteArray的类。当然反过来也可以用QString::toLocal8Bit()得到QByteArray,再用QByteArray下的data()函数,得到char*。不太理解你的意思额。
gb2312是GBK的子集,通常设成哪个都一样的 所谓的QString转char*,结果并不相同,根据编码格式不同而不同 QString转unicode,不用转,QString本身就是unicode QString的根本是QChar数组,但不是以0结尾,有大小,QChar的根本是ushot Qt中unicode声明:可以用wchar_t,也可以用ushot,没有WCHAR ...
通常,这一步在Qt中不需要显式进行,因为QString内部使用Unicode存储,但假设你有一个UTF-8编码的字节数组或字符串,你可以直接处理它。 4. 转换编码 使用QTextCodec的fromUnicode和toUnicode方法,结合适当的编码名称("UTF-8"和"GBK"),可以实现编码的转换。但注意,fromUnicode实际上是将Unicode(QString内部使用的)转换...
1.使用QString::fromLocal8Bit方法 该方法可以将本地编码(如GBK)的字符串转换成Unicode编码的QString对象,进而在Qt界面中显示。 示例代码如下: ui->label->setText(QString::fromLocal8Bit("你好")); 注意:fromLocal8Bit方法假定传入的字符串是以系统本地编码(在Windows上通常是GBK或GB2312)编码的。如果系统...
1.在程序开始位置设置QObject的成员函数tr()的编码器,后面程序中都可以用tr()直接转换字符串; QTextCodec::setCodecForTr(QTextCodec::codecForLocale());//或者codecForName("GBK") ……. QString str(tr(“本地文本”)); 2.用QTextCodec的toUnicode方法来显示中文 ...