辉伫 发表于 2025-6-4 19:57:51

Qt中文乱码的一种解决方法(ISO-8859-1和GBK编码互转)

问题描述:在老项目数据库中,中文显示乱码,编码格式未知,一度怀疑进行了加密。


问题定位:最终,经过大佬的尝试,发现是编码格式的问题。老项目中是将GBK编码的中文字符按照ISO-8859-1编码存入,导致乱码。


解决方法(Qt):
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()

翁真如 发表于 2025-10-29 00:48:29

喜欢鼓捣这些软件,现在用得少,谢谢分享!

讣丢 发表于 2025-11-9 05:28:09

不错,里面软件多更新就更好了

桂册 发表于 2025-12-12 00:57:38

感谢分享

汹萃热 发表于 2025-12-18 14:36:51

不错,里面软件多更新就更好了

凳舒 发表于 2025-12-23 03:36:39

用心讨论,共获提升!

铝缉惹 发表于 2025-12-24 01:08:07

感谢发布原创作品,程序园因你更精彩

滕佩杉 发表于 2025-12-25 01:53:26

感谢分享,学习下。

澹台吉星 发表于 2026-1-6 03:15:10

谢谢分享,试用一下

陆菊 发表于 2026-1-7 21:31:59

热心回复!

施婉秀 发表于 2026-1-14 00:47:53

很好很强大我过来先占个楼 待编辑

酝垓 发表于 2026-1-15 09:01:21

感谢,下载保存了

聱嘹 发表于 2026-1-17 13:20:48

感谢分享,学习下。

栓汨渎 发表于 2026-1-20 09:44:17

感谢,下载保存了

粉押淫 发表于 2026-1-20 21:33:44

谢谢楼主提供!

眩疝诺 发表于 2026-1-29 06:08:16

新版吗?好像是停更了吧。

距佰溘 发表于 2026-2-2 02:10:35

新版吗?好像是停更了吧。

蔺堰 发表于 2026-2-7 03:09:03

前排留名,哈哈哈

季卓然 发表于 2026-2-7 23:58:25

分享、互助 让互联网精神温暖你我

橘芜 发表于 2026-2-8 00:19:28

很好很强大我过来先占个楼 待编辑
页: [1] 2
查看完整版本: Qt中文乱码的一种解决方法(ISO-8859-1和GBK编码互转)