一个Unicode字符占用多少个字节?

296

我对编码有些困惑。据我所知,旧的ASCII字符每个字符占用一个字节。一个Unicode字符需要多少字节呢?

我认为一个Unicode字符可以包含任何语言中的所有可能字符 - 我是正确的吗?那么每个字符需要多少字节呢?

UTF-7、UTF-6、UTF-16等是什么意思?它们是不同版本的Unicode吗?

我看过维基百科关于Unicode的文章,但我觉得很难理解。期待能够得到简单明了的回答。


1
http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings - Pizzicato
18
抱歉,这个问题没有简单的答案。我觉得整个事情有点混乱。Unicode最初被宣传为使用两个字节并能表示所有字符,但实际上两个字节并不够用。 - Jonathan Wood
14
简单回答:一个 Unicode 字符占用 1 到 4 个字节。Unicode 覆盖了很多语言,但并非全部。例如,克林贡语不是官方的 Unicode 字符集之一。 - Peter G.
10
克林贡语并不属于Unicode标准本身。它使用Unicode的专用使用区(U+F8D0 - U+F8FF)代替。 - Remy Lebeau
2
救星问题 - 谢谢。我的情况是通过符合SCORM 1.2的LMS存储数据... SCORM 1.2的标准'cmi.suspend_data'是4096字节的数据,先前的开发人员认为这意味着我们可以存储4096个字符。哦,天哪,他错了 - 我刚刚发现为什么我们的书签在长课程上失败了。所以现在我知道,由于我们使用UTF-8,每个字符需要4个字节,因此我们有1024个字符。 - danjah
显示剩余3条评论
12个回答

1

来自维基百科:

UTF-8是一种8位可变宽度编码,最大限度地兼容ASCII;

UTF-16是一种16位可变宽度编码;

UTF-32是一种32位固定宽度编码。

这是三种最流行的不同编码。

  • 在UTF-8中,每个字符被编码为1到4个字节(占主导地位)
  • 在UTF-16中,每个字符被编码为1到两个16位单词
  • 在UTF-32中,每个字符都被编码为一个32位单词。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接