QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); //设置本地编码对象
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK")); //设置QString编码对象
//utf8向gdk转换的过程是utf8->unicode, unicode->gdk
//在PC,Unicode通常表明utf-16,而utf-8是单独列出来的
//啊的gbk编码: 0xB0A1 啊的utf8编码:0xE5958A
//哈的gbk编码: 0xB9FE 哈的utf8编码:0xE59388
char encode[6]={0xe5,0x95,0x8A,0xE5,0x93,0x88}; //啊哈 utf-8编码
QTextCodec *utf8=QTextCodec::codecForName("UTF-8"); //获取UTF-8编码对象
QString unicode =utf8->toUnicode(encode,6); //经过UTF-8编码对象将啊哈转为utf-16
QTextCodec *gbk=QTextCodec::codecForName("GBK"); //获取GBK编码对象
QByteArray arr=gbk->fromUnicode(unicode); //从Unicode编码转为自身编码类型(GBK)
qDebug()<<QString::fromLocal8Bit(arr); //打印GBK码
qDebug()<<arr.size();
for(int i=0; i <arr.size();i++)
{
qDebug("%x",(unsigned char)arr[i]);
}
文章来源:http://www.javashuo.com/article/p-unnhipkw-gw.htmlhtml