为什么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 怎么来的???
答案 0 :(得分:21)
UTF-8是一种使用可变字节数对UTF字符进行编码的方法(字节数取决于代码点)。
U + 0080和U + 07FF之间的代码点使用以下2字节encoding:
110xxxxx 10xxxxxx
其中x
表示正在编码的代码点的位。
我们考虑U + 00B0。在二进制中,0xB0是10110000.如果将这些位替换为上述模板,则得到:
11000010 10110000
以十六进制表示,这是0xC2 0xB0。
答案 1 :(得分:4)
Unicode(UTF-16和UTF-32)对该字符使用代码点0x00B0
。 UTF-8不允许字符值大于127(0x007F
),因为每个字节的高位保留用于指示此特定字符实际上是多字节字符。
基本的7位ASCII直接映射到UTF-8的前128个字符。任何值大于127十进制(7F十六进制)的字符必须通过设置高位并添加一个或多个额外字节来“转义”。
答案 2 :(得分:4)
UTF-8是Unicode的一种编码。 UTF-16和UTF-32是Unicode的其他编码。
Unicode为每个字符定义一个数值;度符号恰好是0xB0,或十进制的176。 Unicode没有定义如何表示这些数值。
UTF-8将值0xB0
编码为两个连续八位字节(字节),值为0xC2 0xB0
。
UTF-16将0x00 0xB0
或0xBo 0x00
编码为相同的值,具体取决于字节顺序。
UTF-32将其编码为0x00 0x00 0x00 0xB0
或0xB0 0x00 0x00 0x00
,同样取决于字节顺序(我认为其他排序是可能的)。
答案 3 :(得分:1)
NPE,Marc和Keith的回答很好,超出了我对这个主题的了解。在我意识到这是什么之前,我仍然需要阅读几次。然后我看到了这个网页,它点击了"点击"对我来说。
在http://www.utf8-chartable.de/,您可以看到以下内容:
注意如何使用两个字节来编码一个字符。现在阅读NPE接受的答案。