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

时间:2012-01-04 18:33:32

标签: 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 怎么来的???

4 个答案:

答案 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 0xB00xBo 0x00编码为相同的值,具体取决于字节顺序。

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

答案 3 :(得分:1)

NPE,Marc和Keith的回答很好,超出了我对这个主题的了解。在我意识到这是什么之前,我仍然需要阅读几次。然后我看到了这个网页,它点击了"点击"对我来说。

http://www.utf8-chartable.de/,您可以看到以下内容:

UTF-8 needs C2 80 to represent U+0080

注意如何使用两个字节来编码一个字符。现在阅读NPE接受的答案。