UTF-16 编码如何工作?
How does UTF-16 encoding works?
今天我学习了字符编码和 Unicode,但有一件事我不确定。我使用 this 网站将 字
更改为 Unicode 101101101010111
(根据我的理解,这是一个字符集)并将相同的符号更改为 UTF-16(字符编码系统)01010111 01011011
这就是它应该如何保存在内存或桌面上。
- Unicode 只是一个字符集。
- UTF-16 是一种编码系统,它以某种方式更改字符集以将其保存在内存或桌面上。
我说的对吗?
如果是,编码系统如何将 101101101010111
更改为 01010111 01011011
?它是如何工作的?
核心的 Unicode 确实是一个字符集,也就是说,它将数字分配给大多数人认为的 字符。这些数字称为 codepoint.
字的代码点是U+5B57
。这是通常指定代码点的格式。 "5B57"是十六进制数。
在二进制中,5B57
是101101101010111
,如果扩展到16位就是0101101101010111
。但是用二进制指定代码点是很不寻常的。
UTF-16 是 Unicode 的几种编码之一,即内存或文件中的表示。 UTF-16 使用 16 位代码单元。由于 16 位是 2 个字节,因此存在两种将其拆分为字节的变体:
- little-ending(低8位在前)
- big-endian(高8位在前)
它们通常被称为 UTF-16LE 和 UTF-16BE。由于当今大多数计算机都使用小端架构,因此 UTF-16LE 更为常见。
单个代码点可以产生 1 或 2 个 UTF-16 代码单元。在这种特殊情况下,它是单个代码单元,并且与代码点的值相同:5B57
。它被保存为两个字节,或者是:
5B 57
(或 01011011 01010111
二进制,大端)
57 5B
(或 01010111 01011011
二进制,小端)
后一张就是你展示的那一张。所以是UTF-16LE编码。
对于产生 2 个 UTF-16 代码单元的代码点,编码涉及更多。 UTF-16 Wikipedia article.
中有说明
今天我学习了字符编码和 Unicode,但有一件事我不确定。我使用 this 网站将 字
更改为 Unicode 101101101010111
(根据我的理解,这是一个字符集)并将相同的符号更改为 UTF-16(字符编码系统)01010111 01011011
这就是它应该如何保存在内存或桌面上。
- Unicode 只是一个字符集。
- UTF-16 是一种编码系统,它以某种方式更改字符集以将其保存在内存或桌面上。
我说的对吗?
如果是,编码系统如何将 101101101010111
更改为 01010111 01011011
?它是如何工作的?
核心的 Unicode 确实是一个字符集,也就是说,它将数字分配给大多数人认为的 字符。这些数字称为 codepoint.
字的代码点是U+5B57
。这是通常指定代码点的格式。 "5B57"是十六进制数。
在二进制中,5B57
是101101101010111
,如果扩展到16位就是0101101101010111
。但是用二进制指定代码点是很不寻常的。
UTF-16 是 Unicode 的几种编码之一,即内存或文件中的表示。 UTF-16 使用 16 位代码单元。由于 16 位是 2 个字节,因此存在两种将其拆分为字节的变体:
- little-ending(低8位在前)
- big-endian(高8位在前)
它们通常被称为 UTF-16LE 和 UTF-16BE。由于当今大多数计算机都使用小端架构,因此 UTF-16LE 更为常见。
单个代码点可以产生 1 或 2 个 UTF-16 代码单元。在这种特殊情况下,它是单个代码单元,并且与代码点的值相同:5B57
。它被保存为两个字节,或者是:
5B 57
(或 01011011 01010111
二进制,大端)
57 5B
(或 01010111 01011011
二进制,小端)
后一张就是你展示的那一张。所以是UTF-16LE编码。
对于产生 2 个 UTF-16 代码单元的代码点,编码涉及更多。 UTF-16 Wikipedia article.
中有说明