LCD-STM32液晶显示中英文-(6.unicode字符集)

news2025/2/25 11:47:27

目录

Unicode字符集和编码

UTF-32

UTF-16

UTF-8(重点:必须掌握)

BOM

ANSI


Unicode字符集和编码

        由于各个国家或地区都根据使用自己的文字系统制定标准,同一个编码在不同的标准里表示不一样的字符,各个标准互不兼容,而又没有一个标准能够囊括所有的字符,即无法用一个标准表达所有字符。国际标准化组织(ISO)为解决这一问题,它舍弃了地区性的方案,重新给全球上所有文化使用的字母和符号进行编号,对每个字符指定一个唯一的编号(ASCII中原有的字符编号不变),这些字符的号码从0x000000到0x10FFFF,该编号集被称为Universal Multiple-Octet Coded Character Set,简称UCS,也被称为Unicode。最新版的Unicode标准还包含了表情符号(聊天软件中的部分emoji表情),可访问Unicode官网了解:Index。

        Unicode字符集只是对字符进行编号,但具体怎么对每个字符进行编码,Unicode并没指定,因此也衍生出了如下几种unicode编码方案(Unicode Transformation Format)。

UTF-32

        对Unicode字符集编码,最自然的就是UTF-32方式了。编码时,它直接对Unicode字符集里的每个字符都用4字节来表示,转换方式很简单,直接将字符对应的编号数字转换为4字节的二进制数。

        由于UTF-32把每个字符都用要4字节来存储,因此UTF-32不兼容ASCII编码,也就是说ASCII编码的文件用UTF-32标准来打开会成为乱码。

        对UTF-32数据进行解码的时候,以4个字节为单位进行解析即可,根据编码可直接找到Unicode字符集中对应编号的字符。

        UTF-32的优点是编码简单,解码也很方便,读取编码的时候每次都直接读4个字节,不需要加其它的判断。它的缺点是浪费存储空间,大量常用字符的编号只需要2个字节就能表示。其次,在存储的时候需要指定字节顺序,是高位字节存储在前(大端格式),还是低位字节存储在前(小端格式)。

UTF-16

        针对UTF-32的缺点,人们改进出了UTF-16的编码方式,它采用2字节或4字节的变长编码方式(UTF-32定长为4字节)。对Unicode字符编号在0到65535的统一用2个字节来表示,将每个字符的编号转换为2字节的二进制数,即从0x0000到0xFFFF。而由于Unicode字符集在0xD800-0xDBFF这个区间是没有表示任何字符的,所以UTF-16就利用这段空间,对Unicode中编号超出0xFFFF的字符,利用它们的编号做某种运算与该空间建立映射关系,从而利用该空间表示4字节扩展,感兴趣的读者可查阅相关资料了解具体的映射过程。

注:𧗌 五笔:TLHH(不支持GB18030码的输入法无法找到该字,感兴趣可搜索它的Unicode编号找到)

UTF-8(重点:必须掌握)

        UTF-8是目前Unicode字符集中使用得最广的编码方式,目前大部分网页文件已使用UTF-8编码,如使用浏览器查看百度首页源文件,可以在前几行HTML代码中找到如下代码:

        其中“charset”等号后面的“utf-8”即表示该网页字符的编码方式UTF-8。

        UTF-8也是一种变长的编码方式,它的编码有1、2、3、4字节长度的方式,每个Unicode字符根据自己的编号范围去进行对应的编码。它的编码符合以下规律:

  • 对于UTF-8单字节的编码,该字节的第1位设为0(从左边数起第1位,即最高位),剩余的位用来写入字符的Unicode编号。即对于Unicode编号从0x0000 0000-0x0000 007F的字符,UTF-8编码只需要1个字节,因为这个范围Unicode编号的字符与ASCII码完全相同,所以UTF-8兼容了ASCII码表。
  • 对于UTF-8使用N个字节的编码(N>1),第一个字节的前N位设为1,第N+1位设为0,后面字节的前两位都设为10,这N个字节的其余空位填充该字符的Unicode编号,高位用0补足。

        UTF-8解码的时候以字节为单位去看,如果第一个字节的bit位以0开头,那就是ASCII字符,以单字节进行解析。如果第一个字节的数据位以“110”开头,就按双字节进行解析,3、4字节的解析方法类似。

        UTF-8的优点是兼容了ASCII码,节约空间,且没有字节顺序的问题,它直接根据第1个字节前面数据位中连续的1个数决定后面有多少个字节。不过使用UTF-8编码汉字平均需要3个字节,比GBK编码要多一个字节。

其中FEFF表示大小端格式,不需要看。

"啊"的unicode编号为0x554A,在三字节范围内。转成二进制为

101 010101 001010

转成UTF-8,从后往前补,第三个字节10-补01010,第二个字节10-补010101,第一个字节1110-补101,由于不满八位,所以高位补0,即1110-补0101。因此最后转为16进制为E5958A。

BOM

        由于UTF系列有多种编码方式,而且对于UTF-16和UTF-32还有大小端的区分,那么计算机软件在打开文档的时候到底应该用什么编码方式去解码呢?有的人就想到在文档最前面加标记,一种标记对应一种编码方式,这些标记就叫做BOM(Byte Order Mark),它们位于文本文件的开头,见下表。注意BOM是对Unicode的几种编码而言的,ANSI编码没有BOM。

由于带BOM的设计很多规范不兼容,不能跨平台,所以这种带BOM的设计没有流行起来。Linux系统下默认不带BOM。

ANSI

        ANSI是由微软定义的一种编码格式,ANSI跟操作系统的编码格式是一致的。如果我们电脑的操作系统是简体中文(GBK)编码的,选择ANSI就相当于选择GBK;如果电脑操作系统是港台地区的,操作系统编码就是繁体中文(BIG5),那么ANSI就为BIG5。

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

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

相关文章

RabbitMQ ---- RabbitMQ 其他知识点

RabbitMQ ---- RabbitMQ 其他知识点 1. 幂等性1.1 概念1.2 消息重复消费1.3 解决思路1.4 消费端的幂等性保障1.5 唯一 ID 指纹码机制1.6 Redis 原子性 2. 优先级队列2.1 使用场景2.2 如何添加2.3 实战 3. 惰性队列3.1 使用场景3.2 两种模式3.3 内存开销对比 1. 幂等性 1.1 概…

机器学习32:《推荐系统-V》再谈召回、打分和重排

在《机器学习28:推荐系统-概述》一文中,笔者概述了推荐系统的基本术语和一般架构,通过【推荐系统 I~IV】系列课程的学习,相信读者对推荐系统已经有了一定的理解。本节,我们再来回顾一下推荐系统的核心环节—…

常见的电机控制算法实现

BLDC电机控制算法 BLDC(Brushless Direct Current Motor)无刷电机属于自换流型(自我方向转换),因此控制起来更加复杂。 BLDC电机控制要求了解电机进行整流转向的转子位置和机制。对于闭环速度控制,有两个附加要求,即…

代码随想录day21

二叉搜索树的最小绝对差 思路:记住二叉搜索树的特性,中序遍历是有序数组,所以我们直接对树做一次中序遍历,然后对数组中的node进行一次循环遍历不断获取最小值就行了,这里需要创建一个max_value拿来作比较 对于中序遍历…

推荐系统-基于标签的Top-N个性化推荐实现

随着移动互联网的快速发展,UGC标签系统受到越来越多推荐应用,标签不但能反映用户的兴趣又能描述物品的本身特征。现有的标签推荐算法没有考虑用户的连续行为所产生的影响,于是人们提出了一种基于标签的个性化推荐算法。该算法将〈用户-标签-物…

【idea】idea全局设置Maven配置

Idea版本:2021.1.1 1、点击File->Close project 2、点击Customize->All settings 3、设置Maven

2023年8个最佳WordPress电子书主题

您是正在为您的网站寻找最佳的WordPress电子书主题吗?无论您是独立作家、出版社还是同时销售电子书和实体书的在线书店,拥有一个可以直接销售电子书的网站都是一个好主意。 销售电子书可能有助于分销和扩大影响力,但也会侵蚀您的利润。例如&…

11、动手学深度学习——语言模型和数据集:代码详解

我们了解了如何将文本数据映射为词元,以及将这些词元可以视为一系列离散的观测,例如单词或字符。 假设长度为 T T T的文本序列中的词元依次为 x 1 , x 2 , … , x T x_1, x_2, \ldots, x_T x1​,x2​,…,xT​。于是, x t x_t xt​&#xff08…

spring整合dataJPA

1.入门案例 1.1 项目整体结构 表:sql DROP TABLE IF EXISTS t_user; CREATE TABLE t_user ( user_id int(0) NOT NULL AUTO_INCREMENT, user_name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, real_name varchar(255) CHAR…

关于互联网金融平台性能测试的过程经历分享

目录 项目角色 测试范围 测试策略 项目角色 性能测试专家,负责互金平台以及5个关联外围系统性能测试方案制定、测试策略制定,测试前期配合架构组,某某云根据平台内各模块的目标处理能力流量统计来计算调用占比并估算机器设备配置。端对端…

数据结构 ~ 栈、队列

栈 一个后进先出的数据结构、JS中没有栈,可以使用 Array 模拟 const stack [] stack.push(1) // 入栈 stack.push(2) // 入栈 const item1 stack.pop() // 出栈 const item2 stack.pop() // 出栈以上代码可以使用 nodeJs 断点调试(F5启动&#xff0…

伊利投资者日:千亿航母如何“加速度”?

7月14日,伊利股份举办了投资者日活动。在交流中,伊利股份管理层积极表示了实现 “2025年实现全球乳业前三,2030年实现全球乳业第一”的目标信心,也展示了公司目前的成绩以及长期成长的规划。 从投资者日活动来看,伊利透…

10.6.4 【Linux】字符转换命令: tr, col, join, paste, expand

tr tr 可以用来删除一段讯息当中的文字,或者是进行文字讯息的替换。 其实这个指令也可以写在“正则表达式”里头!因为他也是由正则表达式的方式来取代数据的!以上面的例子来说,使用 [] 可以设置一串字呢!也常常用来取…

C语言项目小游戏之俄罗斯方块

今天给大家带来一个用C语言实现的俄罗斯方块小游戏 游戏截图&#xff1a; 首先我们先创建一个名为mywindows.h的头文件。用来设置我们操作台的各种功能实现 mywindows.h #ifndef MYWINDOWS_H_INCLUDED #define MYWINDOWS_H_INCLUDED//系统调用模块 #include <windows.h&g…

华为OD机试真题 Java 实现【计算最接近的数】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、具体解题步骤六、Java算法源码七、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xf…

HCIP第六次作业

1.创建VLAN&#xff0c;并改变相连各自PC接口的类型&#xff0c;同时划分VLAN&#xff0c;做策略即保证&#xff1a;pc2可以访问PC4/5/6;但PC4可以访问Pc5&#xff0c;不能访问PC6 &#xff1b;PC5不能访问PC6 [sw1]vlan batch 2 to 5 批量创建VLAN [sw1]int g0/0/1 [sw1-Gig…

MySQL数据库与表的基本操作 + 表的基本CRUD(增删改查)操作

文章目录 前言一、库的基本操作显示当前所有数据库创建数据库使用数据库删除数据库 二、表的基本操作创建表查看库中所有表查看表结构删除表 三、表的增删改查(基础)新增数据(Create)全列插入指定列插入 查询数据(Retrieve)全列查询指定列查询查询字段为表达式指定列的别名去重…

微服务: 04-springboot中rabbitmq配置,消息回收,序列化方式

目录 1. 本文简介: 1.1 java序列化的缺点 ---> 1.1.1 无法跨语言 --->1.1.2 易被攻击 ---> 1.1.3 序列化后的流太大 ---> 1.1.4 序列化性能太差 2. 配置总览 2.1 基础配置 2.2 连接重试配置 2.3 异常重试机制 2.4 确认模式(本篇是自动) ---> 2.4.1…

VoIP监控工具有什么作用

VoIP 监控工具利用思科的 IPSLA 技术生成合成流量并监控客户端体验的呼叫质量。与被动监控VoIP指标相反&#xff0c;IPSLA技术允许IT管理员主动并在潜在问题发生之前检测到它们&#xff0c;这使组织能够轻松遵守严格的SLA指标。 思科 IPSLA 技术在两台设备之间创建流量&#x…

【Ceph集群应用】Ceph块存储之RBD接口详解

Ceph块存储之RBD接口详解 1.创建Ceph块存储系统RBD接口1.1 删除镜像1.2 还原镜像1.3 在线扩容1.4 回滚镜像到指定位置1.5 删除快照1.6 快照分层1.7 快照展平1.8 镜像的导出导入 接上文基于ceph-deploy部署Ceph集群详解 1.创建Ceph块存储系统RBD接口 &#xff08;1&#xff09;…