ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Qt中文乱码的一种解决方法(ISO-8859-1和GBK编码互转)
[打印本页]
作者:
缠丝猫
时间:
2025-1-7 16:06
标题:
Qt中文乱码的一种解决方法(ISO-8859-1和GBK编码互转)
问题形貌:在老项目数据库中,中文显示乱码,编码格式未知,一度猜疑举行了加密。
问题定位:最终,经过大佬的尝试,发现是编码格式的问题。老项目中是
将GBK编码的中文字符按照ISO-8859-1编码存入
,导致乱码。
解决方法(Qt):
[code]void test(){ // 读取数据库 QSqlDatabase db; QSqlQuery query(db); QString str = QString("select * from db;"); query.exec(str); while (query.next()) { // 读取乱码 QSqlRecord record = query.record(); QByteArray data = record.value("data").toByteArray(); // 确定两种编码格式 QTextCodec *codec_iso = QTextCodec::codecForName("ISO-8859-1"); QTextCodec *codec_gbk = QTextCodec::codecForName("GBK"); // 将Qt读取的QByteArray转换成ISO-8859-1编码 QByteArray b1 = codec_iso->fromUnicode(b); // 再用GBK编码转换成unicode QString s = codec_gbk->toUnicode(b1); // 打印输出是否正确 qDebug()
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4