Unicode编码的理解

news2025/1/19 14:33:03

1、Unicode 这个单词可以拆解为两部分,一个是Uni ,即英文单词unique的意思,也就是唯一的意思。code就是编码的意思。

GBK编码的理解_sgmcy的博客-CSDN博客

在上节博客里面,介绍了ASCII编码、ASCII编码表的扩展以及我们国家汉字的GBK编码。

那么全世界有那么多种语言,那么多种字符,有字母(即使是字母,还包含希腊字母,俄文字母,阿拉伯语字母,英语字母等),有象形文字等。

计算机当时是由美国第一个发明的,自然,美国就用了ASCII码表来进行编码。但是其他国家也有使用计算机的强烈需求。当时ASCII码表使用了8bit,只使用了0~127,剩余的数值128~255就被各个国家拿来扩展了。这就是ASCII码表扩展表

所以,在俄国,你会发现,这些扩展ASCII码表128~255的数字对应的是俄文字符。

在希腊,ASCII扩展表对应的是希腊字母

在阿拉伯,ASCII扩展表对应的是阿拉伯语字符。

我们中国两万多个汉字呢,这个太少了,不利于我们扩展,所以我们指定了GBK标准(当然前期制定的是GB2312标准,后来扩展为GBK标准了,GBK标准后面应该也是继续扩展了)

2、各个国家各自为战,那很明显是不行的。世界上有几百个国家,就有几百个标准!!!

所以发明了一个Unicode编码表。按照上文unique-code的理解。这个Unicode编码表叫做唯一编码表。也就是说,全世界不管什么国家,只用使用了Unicode编码表,就能在电脑上显示你们这个国家的字符。所以叫唯一编码表。

当然,中国人翻译的时候,翻译成了万国编码表,也有的翻译成了统一编码表

一个意思。

其实Unicode编码表,就是跟上文GBK编码表是一个原理,就是为这个字符建立一一映射关系。

比如:(下面的例子是假设的,不是真的Unicode的编码值)

数值1000对应希腊字母α

1002对应希腊字母β

2001对应汉字“我”

2002对应汉字“你”

1000001对应俄文字母XXX

1000002对应俄文字母YYY

这个所谓的一一映射关系,在计算机行业里面取了一个好听的名字,叫做编码

3、一直提所谓的ASCII码

ASCII码的全称是:American Standard Code for Information Interchange

很明显,ASCII的A就是美国的意思,也就是说,这个是美国的标准。美国的标准不代表是全世界的标准,只不过是由于大家都在学英语,必须掌握英文字符,所以大家就都学了ASCII码表

4、UniCode编码方法:

想要了解UniCode的编码方法,先参考这个博文:

GBK编码的理解_sgmcy的博客-CSDN博客

GBK编码的时候,把那么多汉字,拆分成了一个个的小块(小卡片),每个小卡片左上角有个标号(标号范围是0x81~0xFE),然后再根据行和列,确定汉字的下一个标号,完成编码。

 

所以GBK编码有16bit。前一个字节标明了小卡片的号码,后一个字节标明了汉字在这个小卡片中的行和列。

UniCode的编码原理与GBK编码类似。GBK编码采用了24bit来进行编码,编码范围是0x000000~0x10FFFF

其中第一个字节的取值范围只能是0x00~0x10(总共17个)。Unicode取了一个名字,叫“面”,page.

然后后面两个字节就是放了65536个字符。

也就是说,Unicode新建了17个页面,然后规定,每个页面里面放一些字符。最多放65536个。

比如,假设:

第一个界面放中文字符。

第二个界面放英文字符。

第三个界面放俄文字符。

第四个界面放希腊字符。

。。。。

当然实际上会有一些微调。比如,中文才两万多个汉字,用一个可以存放6.5万个字符的界面光光放汉字,有点太可惜了,所以可能会将日文,韩文,以及一些其他的中文标点符号什么的,也放进去,整合成一个界面(page)

再比如,英文字符总共才那么多,127个而已,那么会把相同的一些字符,英国的,俄国的,西班牙的什么的字符,那些跟英语语法相近的字符,放在一个page里面。

实际上,有些平面还未完全填充满,还留着给以后扩展使用呢。

Unicode的大概编码原理就如上图显示。就完成了编码。

 

 

比如,汉字“花” ,Unicode编码值是\u82b1 ,其中\u 代表是Unicode编码,82b1的值,就是Unicode编码的16进制值。很明显,汉字“花”,24bit的第一个字节是00,所以汉字花在第一个page页里面。

注意,Unicode的编码值,跟国标码的编码值,是不一样的。

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

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

相关文章

详解OpenCV的椭圆曲线点坐标近似计算函数ellipse2Poly()

详解OpenCV的椭圆曲线点坐标近似计算函数ellipse2Poly() 函数ellipse2Poly()可用于近似计算椭圆曲线的像素坐标。 而前面介绍过的函数ellipse()则是直接在图像中绘制椭圆,详情见 https://www.hhai.cc/thread-174-1-1.html 函数ellipse2Poly()的C原型如下&#xff…

【Shell】find文件查找

语法格式 find [路径] [选项] [操作]选项参数对照表 常用选项 -name 查找/etc目录下以conf结尾的文件ind /etc -nam -iname 查找当前目录下文件名为aa的文件,不区分大小写 find . -iname aa -user 查找文件属主为hdfs的所有文件find . -user hdfs -group 查找文件属组为yarn的…

虹科方案 | 解决连接到IEEE 1588高可用性网络的SCADA系统的NTP同步参考问题

目前,各个行业都在朝着以太网融合的趋势发展,近年来也出现了一些可用于增强标准以太网弹性的技术创新,并被用作运营(OT)和信息技术(IT)的通用链路层。电气等具有高可用性和严格时序要求的关键领域推动了这些…

1362:家庭问题(family)

1362:家庭问题(family) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6732 通过数: 3529 【题目描述】 有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式…

GBK编码的理解

1、我们学程序的时候,所熟知的ASCII码,就是一种编码方式 计算机底层,就只认识0和1. 举个例子,以3bit为例: 所以,如果是000的话,可以对应数字0 如果是001的话,可以对应数字1 。。…

非零基础自学Golang 第13章 并发与通道 13.4 select 13.5 小结

非零基础自学Golang 文章目录非零基础自学Golang第13章 并发与通道13.4 select13.4.1 select作用13.4.2 超时13.4.3 死锁13.5 小结第13章 并发与通道 13.4 select Go语言中,通过关键字select可以监听channel上的数据流动。 select的用法和switch非常相似&#xf…

Python中的基本数据类型

文章目录前言一、字符串类型字符串表示方法二、数字类型1. 整数2.浮点数3.复数三、布尔类型总结前言 我们一般在电脑中存储的数据有多种数据类型。比如下图这张员工工资表: 表中员工姓名可以用字符串类型存储(比如"李世民"、“侯君集”&#…

Hadoop学习----HDFS

文件系统 文件系统:是一种存储和组织数据的方法,实现数据的存储、分级组织、访问和获取等操作,使得用户对文件访问和查找变得容易。文件系统使用树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念,用户不必关心数据底…

实验三 进程的互斥与同步

文章目录一、 实验目的二、 实验原理三、实验内容四、我的代码内容和现象1、philosopher12、philosopher2这个程序不会发生死锁,因为五、课后习题:1.什么是死锁?产生死锁的原因和必要条件是什么?2.实验中给出的伪代码流程&#xf…

Problem Set 3

1Lagrange Duality Formulate the Lagrange dual problem of the following linear programming prob-lem min cT rs.t.Ax 二b where a ∈R is variable,c ∈ R",A ∈Rkn, b ∈ Rk. 解:设拉格朗日函数为L(x,λ)cTxλT(Ax−b)\mathcal{L}(x,\lambda)…

第十七章 webpack5项目搭建Vue-Cli(开发模式)

step1–创建项目目录 创建一个目录用来搭建vue-cli的项目 mkdir vue-cli cd vue-clistep2–初始化项目 初始化项目,生成一个package.json文件 npm init -ystep3–编写vue-cli的开发模式配置 新建目录 / |-config | |--webpack.dev.js | |--webpack.prod.js我…

USB TO SPI(上海同旺电子)调试器调试25LC020A

所需设备: 1、USB TO SPI(上海同旺电子); 2、25LC020A 2Kb 2.5V SPI Serial EEPROM; Microchip 25LC020A 是一款 2 Kb 串行 EEPROM,采用行业标准串行外设接口 (SPI) 兼容串行总线。 该器件被组织为一个 256 x 8 位块,并针对消…

Java安全--CC7

在学CC7的时候我有这么几个疑问 1.为什么要两个LazyMap 2.hashCode那一步怎么计算的 3.为什么要remove yy 4.为什么put两个 我们可以先看一下CC7的链子是怎么走的: 其实分析链子还是从命令执行走到readObject比较好理解,虽然比较麻烦,比较繁琐&#xff0…

机器人机械臂运动学——逆运动学解算

1.情景概述 假设最一般的情况,我们的机械臂有六个自由度,那么从初始状态想要变化到目标的状态,一般情况下我们至少需要进行六次的变换,而这六次变换的矩阵参数隐含在整体的变换矩阵中。 根据之前的知识,左上角的3*3代表…

m基于隐马尔科夫模型(HMM)的手机用户行为预测(MMUB)算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法…

R语言中的Nelson-Siegel模型在汇率预测的应用

这篇文章的目的是指导读者逐步使用R编程语言实现Nelson-Siegel模型的步骤。 最近我们被客户要求撰写关于Nelson-Siegel模型的研究报告,包括一些图形和统计输出。 您可能已经知道,估计利率期限结构是任何资产定价的关键,因此对投资者和政策制…

5G无线技术基础自学系列 | 基于Massive MIMO的场景化波束优化

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 前面内容提到, 5G中引入了M…

机器人机械臂运动学——运动学正向解算

本博客内容参考台湾大学_林沛群教授_机器人学的课程内容 1.相对运动关系的描述方法 假设有现在这样的一个情景,从左到右有三个转轴,转轴本身可以转动,也可以沿着轴线上下平动,那么我们如何描述其中的运动学关系及其位置关系呢&am…

Linux Red Hat 8.0 cat、cut、sed、tail命令

1.cat: 在终端设备上显示文件内容 常用选项: -n 显示行数(空格有编号) -b 显示行数(空格没有编号) 命令格式:cat 选项 文件 特殊用法tac:倒着显示内容 配合重定向使用 查看 test1…

DPDK 多进程

DPDK库里是支持多进程和多线程,本文主要总结多进程的相关的操作。 DPDK多进程使用的关键启动参数: --proc-type:指定一个dpdk进程是主进程还是副进程(参数值就用上面的primary或是secondary,或者是auto)-…