为什么Degree符号与UTF-8不同于unicode?

Muh*_*edy 9 unicode utf-8

为什么Degree符号与UTF-8不同于unicode?

根据:http://www.utf8-chartable.de/http://www.fileformat.info/info/unicode/char/b0/index.htm

unicode是B0但是UTF-8是C2 B0怎么来的???

NPE*_*NPE 21

UTF-8是一种使用可变字节数编码UTF字符的方法(字节数取决于代码点).

U + 0080和U + 07FF之间的代码点使用以下2字节编码:

110xxxxx 10xxxxxx
Run Code Online (Sandbox Code Playgroud)

其中x表示正在编码的代码点的位.

我们考虑U + 00B0.在二进制中,0xB0是10110000.如果将这些位替换为上面的模板,则得到:

 11000010 10110000
Run Code Online (Sandbox Code Playgroud)

在十六进制中,这是0xC2 0xB0.


Kei*_*son 6

UTF-8 是 Unicode 的一种编码。UTF-16 和 UTF-32 是 Unicode 的其他编码。

Unicode 为每个字符定义了一个数值;度数符号恰好是 0xB0,即十进制的 176。Unicode 没有定义这些数值的表示方式。

UTF-8 将值编码0xB0为两个连续的八位字节(字节)和 values 0xC2 0xB0

UTF-16 编码相同的值 as0x00 0xB0或 as 0xBo 0x00,具体取决于字节序。

UTF-32 将其编码为0x00 0x00 0x00 0xB00xB0 0x00 0x00 0x00,再次取决于字节序(我认为其他排序是可能的)。


Mar*_*c B 5

Unicode(UTF-16 和 UTF-32)使用该0x00B0字符的代码点。UTF-8 不允许值大于 127 ( 0x007F) 的字符,因为每个字节的高位被保留以指示该特定字符实际上是多字节字符。

基本的 7 位 ASCII 直接映射到 UTF-8 的前 128 个字符。任何值大于 127 十进制(7F 十六进制)的字符都必须通过设置高位并添加 1 个或更多额外字节来“转义”来描述。