首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么度符号不同于UTF-8和unicode?

为什么度符号不同于UTF-8和unicode?
EN

Stack Overflow用户
提问于 2012-01-04 18:33:31
回答 4查看 23.9K关注 0票数 13

为什么度符号不同于UTF-8和unicode?

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

unicode是B0,但是UTF-8是C2 B0!?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-04 18:39:15

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

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

代码语言:javascript
运行
复制
110xxxxx 10xxxxxx

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

让我们考虑一下U+00B0。在二进制文件中,0xB0是10110000。如果将比特替换到上面的模板中,就会得到:

代码语言:javascript
运行
复制
 11000010 10110000

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

票数 27
EN

Stack Overflow用户

发布于 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 0xB00xBo 0x00相同。

UTF-32将其编码为0x00 0x00 0x00 0xB00xB0 0x00 0x00 0x00,同样取决于endianness (我认为其他命令是可能的)。

票数 6
EN

Stack Overflow用户

发布于 2012-01-04 18:40:01

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8732025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档