背景:使用某设备读取身份证信息,在使用设备自带SDK在VS2008可以读取正确,在Qt读取显示乱码。
原因:VS2008里面,默认是Unicode编码模式,而Qt在windows下面默认是GBK编码模式,所以显示乱码。
解决方法:
QByteArray byte(idcardData.Name);
QTextCodec *codec = QTextCodec::codecForName("GBK");
QString strUnicode = codec->toUnicode(byte);
char 类型数据可以也使用此方法转化。
ps:注意添加头文件
#include <QTextCodec>