Unicode标准与其他编码规则

简介: Unicode标准与其他编码规则

Unicode标准与其他编码规则
世界上有很多的国家,用不同的字符,他们也要使用计算机,那ASCII编码就不够用了呀,怎么办呢?Unicode标准来了。
Unicode标准是一个由国际标准化组织(ISO)和国际电工委员会(IEC)共同制定的字符编码标准,旨在为所有现代文字和符号提供一个唯一的编码。
Unicode标准定义了一个称为“Unicode”的字符集,它包含了世界上几乎所有已知语言和文化中的字符。定期更新最新字符进来,这样就可以实现全球化了!
当然也要兼容ASCII呀,所以ASCII 字符(十进制0-127)在 Unicode 中具有相同的编码,所以‘a’还是‘97’哈。
Unicode标准定义了字符集,也定义了多种编码格式,如UTF-8、UTF-16、GBK(用于简体中文字符的编码方式)、GB2312等。
UTF-16是一种固定长度的编码方式,它总是使用 2 个字节来表示一个字符,除非是代理对,此时会使用 4 个字节。通常用于内部处理;
UTF-8是一种变长度的编码方式,可以根据字符的 Unicode 码点使用不同数量的字节进行编码。通常用于网络传输和文件存储。
Unicode 码点(code point)是用来唯一标识 Unicode 字符的数值,这个数值是十进制的。Unicode 码点从 U+0000(十六进制)到 U+10FFFF(十六进制),共有 1,114,112 个不同的码点。好吧,又把十进制转成了十六进制来表示,反正我是记不住。
将十进制数转换为十六进制数的过程称为十六进制表示。这个过程可以通过以下步骤完成:
分组:将十进制数从右到左每四位一组进行分组。如果数字小于四位,可以在前面添加零直到它成为四位数。
转换:对于每一组四位数,将其转换为对应的十六进制数。十六进制数使用0-9和A-F(大写或小写)来表示。
0-9的十进制数直接对应到十六进制数。
10-15的十进制数对应到十六进制数A-F。
组合:将转换后的十六进制数按照从左到右的顺序组合起来,得到最终的十六进制数。
例如,将十进制数1234转换为十六进制数:
分组:1234已经是四位数,所以不需要分组。
转换:1234(十进制)= 302(十六进制),因为1234除以16等于76余18,所以十六进制数是302。
组合:组合后的十六进制数是302。
也就是说一个Unicode码点对应一个十进制数字,只不过因为字符的编码都是两个字节,就转换成了十六进制显示,比如“我爱你”在UTF-8编码中,三个字对应的十六进制和十进制编码如下:
“我”字的UTF-8编码: 十六进制:E4 BD A0 十进制:228 189 160
“爱”字的UTF-8编码: 十六进制:E5 A5 BD 十进制:229 165 189
“你”字的UTF-8编码: 十六进制:E4 BD A5 十进制:228 189 165
这个也不用记,了解即可,需要换算直接使用工具就行。
总之,有了Unicode字符集和编码方式标准,现在我们就可以直接使用字符来告诉计算机了。

目录
相关文章
|
存储 安全 Java
|
5月前
|
人工智能 JSON 自然语言处理
多快好省,Qwen3混合部署模式引爆MCP
本文介绍了MCP(Model Context Protocol)与Qwen3模型的结合应用。MCP通过统一协议让AI模型连接各种工具和数据源,类似AI世界的“USB-C”接口。文中详细解析了MCP架构,包括Host、Client和Server三个核心组件,并说明了模型如何智能选择工具及工具执行反馈机制。Qwen3作为新一代通义千问模型,采用混合专家架构,具备235B参数但仅需激活22B,支持快速与深度思考模式,多语言处理能力覆盖119种语言。文章还展示了Qwen3的本地部署流程,以及开发和调试MCP Server与Client的具体步骤。
1722 36
多快好省,Qwen3混合部署模式引爆MCP
|
7月前
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList<>()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
381 1
Java 中数组Array和列表List的转换
|
NoSQL Java Redis
在 Spring 中操作 Redis
本文详细介绍了在Spring框架中如何通过引入依赖、配置文件、使用StringRedisTemplate类以及执行原生命令等方式来操作Redis数据库,并提供了对String、List、Set、Hash和ZSet数据类型的操作示例。
360 0
在 Spring 中操作 Redis
|
Java
Java 中 MessageFormat.format 用法
Java 中 MessageFormat.format 用法
331 1
|
关系型数据库 MySQL 数据安全/隐私保护
已解决:mysql: [Warning] Using a password on the command line interface can be insecure.
已解决:mysql: [Warning] Using a password on the command line interface can be insecure.
914 0
|
XML Java 数据格式
|
JavaScript
VUE3.0 解决eslint 报错的4个办法
VUE3.0 解决eslint 报错的4个办法
750 0
|
人工智能 Serverless 异构计算
【有奖体验】AI 都这么厉害了,可以看图生成文字描述!
一个可以智能识别图片,AI 智能文案描写,以后再也不用怕文案写不出来了!
|
Kubernetes 监控 网络性能优化
k8s诊断之记一次业务pod被异常删除的分析
某用户反馈,头一天晚上21:05左右,某几个deployment的pod被重建了一遍,客户的pod有特殊限制,基本可以保证1个节点上就只有这一个pod独占,客户怀疑后端异常导致
1307 0