文章目录
- Unicode
- UTF-8
- 联系
- 区别
- Unicode 转义序列
- 字符编码与字符的对应规则
- 例子
Unicode
定义:Unicode 是一个字符编码标准,旨在为世界上所有的字符分配一个唯一的编码。
编码范围:Unicode 的编码范围从 0x0000 到 0x10FFFF,能够表示超过一百万个字符。
字符集:Unicode 包含几乎所有书写系统的字符,包括拉丁字母、汉字、阿拉伯字母、希腊字母等。
UTF-8
定义:UTF-8 (Unicode Transformation Format - 8-bit) 是一种用于表示 Unicode 字符的可变长度字符编码。
编码方式:UTF-8 使用 1 到 4 个字节来编码 Unicode 字符:1 个字节:用于表示 ASCII 码中的字符(U+0000 到 U+007F)。2 个字节:用于表示大部分常用的拉丁字母扩展字符(U+0080 到 U+07FF)。3 个字节:用于表示基本多文种平面(BMP)中的字符(U+0800 到 U+FFFF)。4 个字节:用于表示补充字符平面中的字符(U+10000 到 U+10FFFF)。
特点:向后兼容 ASCII:UTF-8 对于 ASCII 字符只使用一个字节编码,保持了与 ASCII 的兼容性。无字节序问题:由于 UTF-8 是以字节为单位进行编码的,因此不存在字节序(Endian)问题。高效性:对于西方语言,UTF-8 非常高效,因为大部分常用字符只需要一个字节。
联系
Unicode 是字符的标准集合,可以用多种不同的编码方式来表示,例如 UTF-8、UTF-16、UTF-32 等。UTF-8 是其中最常用的一种编码方式。
区别
Unicode 转义序列
格式:\uXXXX
,其中 XXXX 是 4 位十六进制数,表示一个 Unicode 码点。
用途:用于表示 Unicode 字符,通常在 JSON、JavaScript 字符串、Java 字符串等场景中使用。
字符编码与字符的对应规则
字符编码是一种规则,将字符映射为特定的字节序列。不同的编码方案(如 UTF-8、GBK)有不同的映射规则。
例子
字符 "中" 的 Unicode 码点是 U+4E2D。
将 U+4E2D 转换为 UTF-8 编码,步骤如下:根据 UTF-8 编码规则,U+4E2D 需要用 3 个字节来表示。具体编码步骤:将 4E2D 转换为二进制:01001110 00101101。根据 UTF-8 编码格式 1110xxxx 10xxxxxx 10xxxxxx,将二进制分段并填充:1110 与 0100 → 1110010010 与 111000 → 1011100010 与 101101 → 10101101得到 UTF-8 编码字节序列:E4 B8 AD。