【Qt 学习笔记】Qt 中出现乱码的解释及讨论

news2024/12/26 23:04:49

  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt 中出现乱码的解释及讨论

文章编号:Qt 学习笔记 / 06

文章目录

  • Qt 中出现乱码的解释及讨论
    • 一、为什么会出现乱码
      • 1. 在计算机中汉字占几个字节?
      • 2. 字符集
        • 2.1 ASCII 码表
        • 2.2 UTF-8
        • 2.3 GBK
    • 二、出现乱码的几种原因
    • 三、解决乱码问题的方法
    • 四、查看Qt文件的编码方式


一、为什么会出现乱码

1. 在计算机中汉字占几个字节?

在这里,考大家一个问题。在计算机中,汉字占几个字节?
回答这个问题的前提条件是当前中文编码使用的是哪种方式(字符集)

常见的字符集:ASCII、UTF-8、GBK、UTF-16

2. 字符集

字符集是一组字符的集合,用于在计算机系统中表示和处理文本数据。字符集通常由一系列字符编码组成,每个字符编码对应一个唯一的数字值。常见的字符集包括ASCII、Unicode和UTF-8等。字符集决定了可以在计算机系统中表示的字符范围和编码方式。不同的字符集支持不同的字符和字符编码,因此在处理文本数据时,需要使用相应的字符集来正确地解析和显示文本。

2.1 ASCII 码表

ASCII码表(American Standard Code for Information Interchange,美国信息交换标准代码)是一种以十进制数字表示的字符编码,共有128个字符编码,包括控制字符、标点符号、数字和字母等。
在这里插入图片描述

2.2 UTF-8

UTF-8是一种可变长度的字符编码方式,它可以用来表示世界上几乎所有的字符。它是Unicode标准的一种实现方式,通过使用1到4个字节来表示不同的字符。UTF-8编码的优点是兼容ASCII编码,对于ASCII编码中的字符使用一个字节表示,而对于其他非ASCII字符则使用多个字节表示。这使得UTF-8能够在保持兼容性的同时,使用较少的字节数来表示字符,节省了存储空间。UTF-8广泛用于互联网传输和存储文本数据的编码方式。

2.3 GBK

GBK是一种字符编码方式,全称为"Guo Biao Kuo Zhan",是中国国家标准局制定的一种字符编码规范。它在ASCII基础上进行了扩展,使用双字节表示一个字符,兼容ASCII编码,可以表示汉字以及其他特殊字符。GBK编码共收录了21003个汉字和图形符号。在GBK编码中,一个汉字占用两个字节,每个字节的范围都是0x81~0xFE。


二、出现乱码的几种原因

乱码的常见原因:编码方式不匹配所导致的

Qt中出现乱码问题的原因可能有多种,以下是一些常见的原因:

  • 字符编码不一致:在Qt中,文本通常以Unicode编码表示,而其他库或组件可能使用不同的字符编码。如果在不同编码间进行转换不正确或丢失了一些信息,就会导致乱码问题。

  • 字符编码设置不正确:Qt提供了一些函数用于设置全局字符编码,在处理文本时,如果没有正确设置编码,也会导致乱码问题。

  • 字体设置不正确:如果在显示文本时使用了不支持的字符集或者字体,就会导致乱码问题。

  • 文本文件格式不正确:如果读取的文本文件格式不正确,比如使用了不支持的编码或者文件被损坏,也会导致乱码问题。

  • 字符串截断或缺失:如果在处理文本时,不小心截断了或者丢失了一些字符,也可能导致乱码问题。

  • 系统环境设置不正确:如果系统的语言和区域设置不正确,也会导致乱码问题。


三、解决乱码问题的方法

  • 确保字符编码一致,尽量采用Unicode编码;
  • 设置正确的字符编码和字体;
  • 使用正确的文本文件格式;
  • 避免字符串截断或缺失;
  • 确保系统环境设置正确。

四、查看Qt文件的编码方式

  1. 右键点击文件,选择在Explorer中显示
    在这里插入图片描述
  2. 选中文件右键,点击编辑
    在这里插入图片描述
  3. 在记事本中的右下角显示,当前文件的编码格式(注意:显示UTF-8,说明这个文件是UTF-8编码。如果显示ANSI,则说明这个文件是GBK编码)
    在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1574222.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FJSP:蜣螂优化算法( Dung beetle optimizer, DBO)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题(Flexible Job Shop Scheduling Problem,FJSP),是一种经典的组合优化问题。在FJSP问题中,有多个作业需要在多个机器上进行加工,每个作业由一系列工序组成&a…

一种有效的隐私保护联邦学习方法-文章翻译

一种有效的隐私保护联邦学习方法 摘要 联邦学习已成为协作学习和隐私保护学习的一种很有前途的方法。联合学习过程中的参和者通过交换模型参数而不是实际的训练数据(他们可能希望保持私有)来合作训练模型。然而,参数交互和生成的模型仍然可能会披露有关所用训练数据的信息…

Mysql故障解析

目录 一、Mysql单实例故障排查 1.故障一 2.故障二 3.故障三 4.故障四 5.故障五 6.故障六 7.故障七 8.故障八 二、Mysql主从故障排查 1.故障一 2.故障二 3.故障三 三、Mysql优化 1.硬件方面 (1)关于CPU (2)关于内…

在线监测系统在水厂水质管理工程中的应用与研究

【摘要】:随着水厂水质管理技术和管理水平的提升,达到了在线监测系统通过监测数据的反馈,及时发现问题,快速处理事故,优化了水资源的利用率,提高了供水系统的稳定性和安全性,从而有效地提高供水…

2024.4.4-day09-CSS 布局模型(标准流模型、浮动模型)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.4-学习笔记1 CSS 布局模型1.1 标准流1.2 CSS 浮动1.3 去除塌陷 2…

RabbitMQ的交换机与队列

一、流程 首先先介绍一个简单的一个消息推送到接收的流程,提供一个简单的图 黄色的圈圈就是我们的消息推送服务,将消息推送到 中间方框里面也就是 rabbitMq的服务器,然后经过服务器里面的交换机、队列等各种关系(后面会详细讲&am…

文件读写(相关函数详解)

1.文件的顺序读写 相关函数: 1.1 fputc函数 fputc的参数如下 它的功能是把字符character输出到stream指向的文件中,字符的本质就是它的ascll值所以这里用int类型接收。如果写入成功则返回写入的字符的ascll码,失败则返回-1(即EOF) 示例代码…

【洛谷】P9236 [蓝桥杯 2023 省 A] 异或和之和

题目链接 P9236 [蓝桥杯 2023 省 A] 异或和之和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路 1. 暴力求解 直接枚举出所有子数组,求每个子数组的异或和,再对所有的异或和求和 枚举所有子数组的时间复杂度为O(N^2)&…

C++ 【原型模式】

简单介绍 原型模式是一种创建型设计模式 | 它使你能够复制已有对象,客户端不需要知道要复制的对象是哪个类的实例,只需通过原型工厂获取该对象的副本。 以后需要更改具体的类或添加新的原型类,客户端代码无需改变,只需修改原型工…

线程安全--深入探究线程等待机制和死锁问题

꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转…

影院座位选择简易实现(uniapp)

界面展示 主要使用到uniap中的movable-area&#xff0c;和movable-view组件实现。 代码逻辑分析 1、使用movable-area和movea-view组件&#xff0c;用于座位展示 <div class"ui-seat__box"><movable-area class"ui-movableArea"><movab…

C++ 内存分配时地址对齐

如果数据地址的对齐与CPU相兼容&#xff0c;那么CPU读写内存时性能会更高。 因此在C中&#xff0c;有时会希望在堆或栈中分配内存时&#xff0c;返回的地址能按照特定的长度对齐。 如果希望在栈中分配的内存时&#xff0c;返回地址按照特定长度对齐&#xff0c;可以使用 alig…

IVS模型解释

核心思路 【Implied volatility surface predictability: The case of commodity markets】 半参数化模型&#xff1a;利用各种参数(或者因子)对隐含波动率进行降维&#xff08;静态参数化因子模型&#xff09;&#xff0c;对参数化因子的时间序列进行间接的建模 基于非对称…

蓝桥杯 十一届C++A组 字符排序 21分(运行超时)

思路&#xff1a; 1. 此题考查的冒泡排序中的交换次数&#xff0c;其实就是考察当前数与后面的逆序对个数问题。而为了最大利用位数&#xff0c;应当使每一位都不小于后面的字符&#xff0c;否则会造成一次逆序对的浪费&#xff08;贪心&#xff0c;为了使总位数最少&#xff…

代码随想录算法训练营三刷 day45 | 动态规划 之 70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数

三刷day45 70. 爬楼梯 &#xff08;进阶&#xff09;1. 确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例来推导dp数组 322. 零钱兑换1. 确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组 279.完全平方…

01.IDEA中出现Cannot resolve symbol ‘SpringApplication异常

试了很多次&#xff0c;看了这篇文章终于发现了问题。IDEA解决springboot工程中Cannot resolve symbol SpringApplication异常-CSDN博客 我存在的问题在于Maven home path有误&#xff0c;改正之后就没有问题&#xff0c;不标红了。

逆向案例十二——看准网企业信息json格式的信息

网址&#xff1a;【全国公司排行|排名榜单|哪家好】-看准网 打开开发者工具——刷新——网络——XHR——下滑页面加载新的页面——找到数据包 发现参数加密&#xff0c;返回的数据也进行了加密 按关键字在下方搜索 kiv进入第一个js文件 ctrlf打开文件里面的搜索框继续搜kiv找到…

【机器学习入门】使用YOLO模型进行物体检测

系列文章目录 第1章 专家系统 第2章 决策树 第3章 神经元和感知机 识别手写数字——感知机 第4章 线性回归 第5章 逻辑斯蒂回归和分类 第5章 支持向量机 第6章 人工神经网络(一) 第6章 人工神经网络(二) 卷积和池化 第6章 使用pytorch进行手写数字识别 文章目录 系列文章目录前…

ECAI 2024投稿指南

诸神缄默不语-个人CSDN博文目录 ECAI也写一下&#xff0c;作为备胎。毕竟ECAI是CCF B会。 ECAI dblp官网&#xff1a;https://dblp.uni-trier.de/db/conf/ecai/index.html 征文网址&#xff1a;https://www.ecai2024.eu/calls/main-track ECAI 2024在西班牙开&#xff0c;如…

伦敦银行情上涨时投资盈利

在讨论如何根据伦敦银行情上涨时机投资盈利之前&#xff0c;投资者需要了解伦敦银的特性以及影响其价格波动的因素。伦敦银&#xff0c;即银的伦敦市场交易价格&#xff0c;是全球贵金属交易中的重要参考价。银的价格受到多种因素的影响&#xff0c;包括全球经济状况、货币政策…