QTextCodec *codec = QTextCodec::codecForName("GBK"); QString string = codec->toUnicode(encodedString); 1. 2. 3. 同样的,如果现在有一组unicode字符串需要转为GBK码数据,那么就是这样: QString string = "..."; QTextCodec *codec = QTextCodec::codecForName("GBK"); QByteArray encodedString ...
QTextCodec *pGBK = QTextCodec::codecForName("GB18030");//fromUnicode可以拿到QString在相应编码下的QByteArrayqDebug()<<pGBK->fromUnicode(str);//方法非常简单,直接把源QString传进来,用相应编码QTextCodec调用fromUnicode即可得到std::stringstring= pGBK->fromUnicode(str).data(); std::cout<<string;...
于是猜测使用的是gbk编码,用下面这种QT编码器,先转换为gbk编码,然后转换为Unicode编码,就可以正常识别出车牌号了。 QString strPlate = QTextCodec::codecForName("gbk")->toUnicode(struTfsAlarm.struPlateInfo.sLicense);
QStringstr="啊哈";//对应编码为: 0xB0A1 0xB9FE QTextCodec*gbk=QTextCodec::codecForName("gbk"); QStringunicode=gbk->toUnicode(str.toLocal8Bit());//通过gbk编码对象将啊哈转为utf-16 QTextCodec*utf8=QTextCodec::codecForName("UTF-8"); QByteArrayarr=utf8->fromUnicode(unicode);//从Unic...
如果你是想在代码中做静态的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 ...
使用QTextCodec的fromUnicode和toUnicode方法,结合适当的编码名称("UTF-8"和"GBK"),可以实现编码的转换。但注意,fromUnicode实际上是将Unicode(QString内部使用的)转换为指定编码的字节数组,而toUnicode则是将指定编码的字节数组转换为Unicode。因此,在UTF-8到GBK的转换中,我们主要使用fromUnicode(但实际上是先通过toUni...
QT中的QString内容使用Unicode作为文本编码。但是实际系统中通常采用的是其他编码,例如GBK,utf8等。为了便于兼容这些格式,QT中还设置了两个字符串类型: QCString类: C类型字符串,必须以0结尾,也就是中间不能含有0.例如GBK编码的字符串 QByteArray类:中间可以含有0.例如utf8编码的字符串 ...
1.使用QString::fromLocal8Bit方法 该方法可以将本地编码(如GBK)的字符串转换成Unicode编码的QString对象,进而在Qt界面中显示。 示例代码如下: ui->label->setText(QString::fromLocal8Bit("你好")); 注意:fromLocal8Bit方法假定传入的字符串是以系统本地编码(在Windows上通常是GBK或GB2312)编码的。如果系统...