今天我正在学习字符编码和Unicode,但有一件事我不确定。我使用这个网站将字
更改为Unicode101101101010111
(从我的理解是一个字符集),并将相同的符号更改为UTF-16(字符编码系统)01010111 01011011
,这是它应该如何保存在内存或桌面。
- Unicode只是一个字符集。
- UTF-16是一种改变字符集的编码系统,可以将其保存在内存或桌面上。
我说的对吗?如果是,编码系统如何将101101101010111
更改为01010111 01011011
?它是如何工作的?
Unicode的核心确实是一个字符集,也就是说,它为大多数人认为的字符分配数字。这些数字称为码点。
对应的代码点是U+5B57
。这是通常指定代码点的格式。"5 b57"是十六进制数。
在二进制中,5B57
是101101101010111
,如果扩展到16位,则是0101101101010111
。但是在二进制中指定代码点是非常不寻常的。
UTF-16是Unicode的几种编码之一,即内存或文件中的表示形式。UTF-16使用16位编码单元。由于16位是2字节,因此存在两种将其分成字节的变体:
- 小结束(低8位优先)
- 大端(高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条目中有解释。
大多数网站都使用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编码