51Halcon机器视觉

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2054|回复: 0
收起左侧

[资料] Qt5.5.1中文乱码解决办法

[复制链接]
  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 688 天

    连续签到: 1 天

    [LV.9]以坛为家II

    358

    主题

    1410

    帖子

    5681

    积分

    Rank: 9

    积分
    5681

    突出贡献优秀版主荣誉管理论坛元老切换助手验证会员最佳新人

    发表于 2017-5-3 21:02:01 | 显示全部楼层 |阅读模式

    管理员 |主题 358|帖子 1410|积分 5681

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    现在能看到的Qt的书籍多半是QT4的,把代码复制下来就会发现中文乱码现象。
    比如我学习霍亚飞的Qt系列书籍都是基于Qt4的。他在书中解决中文乱码的办法是
    QT4解决办法
    1. QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
    复制代码
    如此等等通过QTextCodec函数设置的方法试过各种都是失败告终
    这种方法在QT5中已经失效。
    Qt5解决中文乱码方法:
    • 通过QString::fromLocal8Bit函数
      把中文用 QString::fromLocal8Bit(“你好”); 包起来,而不是仅仅用 QString() ;
    • 通过QStringLiteral函数
      通过QStringLiteral宏把中文包起来,QStringLiteral(“中国”); 而不是仅仅使用QString() ;
    • 通过QString::fromUtf8函数
      这个和前面两种是一样的操作,但是我没有试验成功,QString::fromUtf8(“你好”);
    • 通过预编译
      在类中添加预编译
      1. #pragma execution_character_set("utf-8")
      复制代码


    5.借助外部工具使用电脑自带的记事本或者Notepad++软件打开含中文的文件,选择保存为utf-8格式,我使用Notepad++保存为utf-8无BOM格式才能正常使用
    实验1:
    新建控制台 main中添加如下代码,注意头文件
    1. qDebug()<<"a:"<<qstring("你好")<<qstring::fromutf8("我好")
    2.            <<qstring::fromlocal8bit("他好")<<qstringliteral("大家好");
    3.     return 0;
    复制代码
    结果:
    可以看到,第一个和第二个失败,后面两个成功。
    实验2:
    添加预编译
    1. #include "QDebug"
    2. #include "qstring.h"

    3. #pragma execution_character_set("utf-8")

    4. int main(int argc, char *argv[])
    5. {
    6.     qDebug()<<"a:"<<qstring("你好")<<qstring::fromutf8("我好")
    7.            <<qstring::fromlocal8bit("他好")<<qstringliteral("大家好");
    8.     return 0;
    9. }
    复制代码
    结果:
    可以看到第三个出了一点问题,
    总结:
    这几种方法选一个适合你的就行,我用的是QStringLiteral

    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

    申请友链| 小黑屋| 手机版| Archiver|  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    Powered by 51Halcon机器视觉 X3.4 Licensed© 2015-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表