为什么度符号不同于UTF-8和unicode?
根据:http://www.utf8-chartable.de/和http://www.fileformat.info/info/unicode/char/b0/index.htm
unicode是B0,但是UTF-8是C2 B0!?
发布于 2012-01-04 18:39:15
UTF-8是一种使用可变字节数(字节数取决于代码点)对UTF字符进行编码的方法。
U+0080和U+07FF之间的代码点使用以下2字节encoding
110xxxxx 10xxxxxx
其中,x
表示正在编码的代码点的位。
让我们考虑一下U+00B0。在二进制文件中,0xB0是10110000。如果将比特替换到上面的模板中,就会得到:
11000010 10110000
在十六进制中,这是0xC2 0xB0。
发布于 2012-01-04 19:21:55
UTF-8是Unicode的一种编码。UTF-16和UTF-32是Unicode的其他编码。
Unicode为每个字符定义了一个数值;度数符号恰好是0xB0,或十进制中的176。Unicode不定义如何表示这些数值。
UTF-8将值0xB0
编码为两个连续的八进制(字节)和值0xC2 0xB0
。
根据endianness的不同,UTF-16编码的值与0x00 0xB0
或0xBo 0x00
相同。
UTF-32将其编码为0x00 0x00 0x00 0xB0
或0xB0 0x00 0x00 0x00
,同样取决于endianness (我认为其他命令是可能的)。
发布于 2012-01-04 18:40:01
Unicode (UTF-16和UTF-32)对该字符使用代码点0x00B0
。UTF-8不允许值超过127 (0x007F
)的字符,因为每个字节的高位是保留的,以指示这个特定字符实际上是多字节字符。
基本7位ASCII直接映射到UTF-8的前128个字符.任何值大于127小数点(7F十六进制)的字符必须通过设置高位和添加一个或多个要描述的额外字节来“转义”。
https://stackoverflow.com/questions/8732025
复制相似问题