UTF-16编码是如何工作的?



今天我正在学习字符编码和Unicode,但有一件事我不确定。我使用这个网站将更改为Unicode101101101010111(从我的理解是一个字符集),并将相同的符号更改为UTF-16(字符编码系统)01010111 01011011,这是它应该如何保存在内存或桌面。

  • Unicode只是一个字符集。
  • UTF-16是一种改变字符集的编码系统,可以将其保存在内存或桌面上。

我说的对吗?如果是,编码系统如何将101101101010111更改为01010111 01011011?它是如何工作的?

Unicode的核心确实是一个字符集,也就是说,它为大多数人认为的字符分配数字。这些数字称为码点

对应的代码点是U+5B57。这是通常指定代码点的格式。"5 b57"是十六进制数。

在二进制中,5B57101101101010111,如果扩展到16位,则是0101101101010111。但是在二进制中指定代码点是非常不寻常的。

UTF-16是Unicode的几种编码之一,即内存或文件中的表示形式。UTF-16使用16位编码单元。由于16位是2字节,因此存在两种将其分成字节的变体:

  • 小结束(低8位优先)
  • 大端(高8位优先)

它们通常被称为UTF-16LEUTF-16BE。由于现在大多数计算机都使用一点端序架构,所以UTF-16LE更常用。

单个代码点可以产生1或2个UTF-16代码单元。在这种特殊情况下,它是一个单独的代码单元,它与代码点的值相同:5B57。它被保存为两个字节,或者为:

5B 57(或01011011 01010111二进制,大端)

57 5B(或01010111 01011011二进制,小端)

后一个就是您所展示的那个。所以它是UTF-16LE编码。

对于产生2个UTF-16代码单元的码点,编码更复杂一些。在维基百科的UTF-16条目中有解释。

大多数网站都使用UTF 16,我也使用英语二进制翻译

Unicode的核心确实是一个字符集,也就是说,它为大多数人认为的字符分配数字。这些数字称为代码点。

对应的代码点为U+5B57。这是通常指定代码点的格式。"5 b57"是十六进制数。

5B57的二进制表示为101101101010111,如果扩展为16位,则为0101101101010111。但是在二进制中指定代码点是非常不寻常的。

UTF-16是Unicode的几种编码之一,即内存或文件中的表示形式。UTF-16使用16位代码单元。由于16位是2字节,因此存在两种将其分成字节的变体:

little-ending(低8位优先)大端(高8位优先)它们通常被称为UTF-16LE和UTF-16BE。由于现在大多数计算机都使用一点端序架构,所以UTF-16LE更常用。

单个代码点可以产生1或2个UTF-16代码单元。在本例中,它是一个单独的代码单元,它与代码点的值相同:5B57。它被保存为两个字节,或者为:

5b57(或01011011 01010111二进制,大端)

575b(或01010111 01011011二进制,小端位数)

后一个就是您所展示的那个。所以是UTF-16LE编码

相关内容

最新更新