QT chino ilegible, esquema de conversión de código

Rutina convencional

//1、main函数前面加宏
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")

//2、main函数里面指定编码
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

//3、针对字符串操作
QStringLiteral(“字符串”);//返回一个QString的实例
QString QString::fromLocal8Bit(const char *str, int size = -1);
QString QString::fromLocal8Bit(const QByteArray &str);

Especificar codificación

Cuando la rutina convencional no es válida, puede intentar especificar la codificación de la cadena. Este método es muy efectivo cuando QT llama a programas externos, como la línea de comandos cmd, el controlador de impresora, etc.

//1、从外部程序获取字符串,转换编码,在Qt程序里显示中文
char cOutVersion[100];
//获取版本信息
iRet = GetDriverVersion(cOutVersion);//调用外部接口获取字符串
//强制转换编码,显示中文
QTextCodec *gbk= QTextCodec::codecForName("GBK");
QString t_cOutVersion = gbk->toUnicode(cOutVersion);//获取的字符串可以显示中文

//2、Qt输出字符串到外部程序,在外部程序显示中文
QString str_printInfo = "CB532测试打印信息";
//当前文件是utf-8编码,打印机接口是GBK编码,需要转换
QTextCodec *gbk = QTextCodec::codecForName("gbk");
QByteArray array_printInfo = gbk->fromUnicode(str_printInfo);
//调用外部接口,打印支持中文显示
PrintLine(array_printInfo.data());

Supongo que te gusta

Origin blog.csdn.net/weixin_40355471/article/details/111031853
Recomendado
Clasificación