U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 常见问题解答 >

1-Qt-中文乱码

来源:http://www.tudoupe.com时间:2022-02-21

1-Qt-中文乱码

问题的本质

Qt是一个跨平台的库,因此常被用在各种常见的操作系统上进行软件开发;比如linux 或者 windows;
而在软件开发过程中,经常会遇到中文乱码的情况;很多情况下在网上搜索一个解决方案发现也好使,也就不去细究了;但是这个方案在其它情况下又不好用;
其本质原因是没有搞清楚当前开发环境不同模块之间的编码转换问题;

解决方案

在Qt5.0以后,推荐使用的解决方案一般是采用QString::toLocal8Bit(...)QString:: fromLocal8Bit(const char *str, int size = -1)

但是这个方案的使用还得注意前面所说的 开发环境不同模块间的编码问题;
一般影响编码的模块包括: 操作系统, 编译器, 文本的格式;
所以在开发过程中,上述三个模块支持的编码格式心里一定要有数。否则发生乱码是在所难免的;

编码概述

编码是一门大学问,这里不可能讲清楚,但是了解是很有必要的;这里只讲对我们解决乱码有用的地方;

  1. Unicode是一种字符编码,目前是国际通用编码;也就是大家约定的一种为字符编码的规则;否则大家各自订一套,那么在这个互联网联通万物的世界,语言不通;它是让每个字符和一个数字对应起来,仅此而已;

  2. utf8 utf16 utf32:上面Unicode只是定义了规则,至于如何将规则存储,就有了这三种存储方式;

  3. 目前互联网,或者说使用最广泛的编码存储规则,就是utf8;

  4. BOM(byte order mark): 为了区分Unicode是采用 哪一种存储格式,有分为是否带BOM; 可是这个BOM并不是以明文的方式呈现在文本中,所以并没没有被广泛使用; 原因很多,,这里不拓展开来;
    既然不使用BOM,各种语言也有他们区分Unicode存储方案的解决方法:Python的 # -- coding: utf-8 --,Perl的use utf8 等等;

  5. 使用带BOM的UTF-8: 只有微软使用了BOM来区分:将UTF-8 和 ASCII 等编码明确区分开;「UTF-8」和「带 BOM 的 UTF-8」的区别就是有没有 BOM。即文件开头有没有 U+FEFF。而且开头并不是可见的明文;

小结:讲到这里,可以知道的一点是,Unicode字符编码是有国际使用最广泛的;开发的时候也一般采用的都是 Unicode的编码规则;
当然也有其它编码规则: 比如ASCII, GB2312, GBK等等;
其中linux 常用 utf-8, 而windows在国产机(中国)使用GBK
因此,为了编码间能正常识别转换,一般先将编码转换为 Unicode编码规则,在转成本地编码规则
如: GB2312 ⇒ Rightarrow Unicode ⇒ Rightarrow GB2312

实战

了解了上述的原理后,我们选用了最常见发生乱码的一个案例来进行实战;

环境准备

  1. Qt 版本5.9
  2. windows10操作系统
    在Windows平台下,进入DOS窗口,输入:chcp
    可以得到操作系统的代码页信息,你可以从控制面板的语言选项中查看代码页对应的详细的字符集信息。
    例如:
    我的活动代码页为:936,它对于的编码格式为GBK。
  3. MSVC编译器(具体MSVC2015 64位), 这里配置成支持utf-8编码格式
    MSVC默认对中文编码: 采用GB2312或GBK编码,即使用两个字节表示汉字
    当然可以设置成:支持utf-8
    例如:在.pro文件中添加
  1. 文本格式设置: 不带BOM的utf-8 和 带BOM的utf-8, 配置成不带BOM
    在qt creator中可以直接设置;

在这里插入图片描述

效果

可以改变各种配置,去多体验和实践;下面给出一种方案;

按照上面的设置出来的效果;

在这里插入图片描述

在这里插入图片描述

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息