首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UTF-8可以编码多少个字符?

UTF-8可以编码多少个字符?
EN

Stack Overflow用户
提问于 2012-04-19 21:29:46
回答 7查看 104.4K关注 0票数 126

如果UTF-8是8位,是不是意味着最多只能有256个不同的字符?

前128个码位与ASCII中的相同。但它说UTF-8可以支持多达百万个字符?

这是怎么回事?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-04-19 21:34:12

UTF-8并不总是使用一个字节,它是1到4个字节。

前128个字符(US-ASCII码)需要一个字节。

接下来的1920个字符需要两个字节进行编码。这涵盖了几乎所有拉丁字母表的其余部分,还包括希腊语、西里尔语、科普特语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和Tāna字母表,以及组合变音标记。

基本多语言平面的其余部分中的字符需要三个字节,基本多语言平面包含通用use12中的几乎所有字符,包括大多数中文、日文和韩文CJK字符。

Unicode的其他平面中的字符需要四个字节,其中包括不太常见的CJK字符、各种历史文字、数学符号和表情符号(象形符号)。

来源:Wikipedia

票数 155
EN

Stack Overflow用户

发布于 2012-04-19 21:40:05

UTF-8对每个字符使用1-4个字节:一个字节用于ascii字符(前128个Unicode值与ascii相同)。但这只需要7位。如果设置了最高("sign")位,则表示多字节序列的开始;设置的连续高位的数量表示字节数,然后是0,其余位构成该值。对于其他字节,最高的两位将是1和0,其余6位用于该值。

所以一个四字节的序列应该以11110开头...(AND...=值的三位),然后是三个字节,每个字节有6位的值,产生21位的值。2^21超出了unicode字符数,因此所有unicode都可以用UTF8表示。

票数 48
EN

Stack Overflow用户

发布于 2012-04-19 21:35:11

UTF-8是一种可变长度编码,的最小为每个字符8位。

具有较高码位的字符将占用最多32位。

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

https://stackoverflow.com/questions/10229156

复制
相关文章

相似问题

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