我对编码有点困惑。据我所知,旧的ASCII字符每个字符占用一个字节。Unicode字符需要多少字节?
我假设一个Unicode字符可以包含来自任何语言的所有可能的字符-我说的对吗?那么每个字符需要多少字节呢?
UTF-7、UTF-6、UTF-16等是什么意思?它们是不同版本的Unicode吗?
我读过Wikipedia article about Unicode,但它对我来说很难。我期待着看到一个简单的答案。
发布于 2020-06-17 22:15:04
Unicode
是一个standard,它为每个字符提供一个唯一的数字。对于世界上存在的所有字符,这些唯一的数字被称为code point
s (这只是一个唯一的代码)(一些字符还在添加中)。
出于不同的目的,您可能需要用字节来表示这个code points
(大多数编程语言都是这样做的),这就是Character Encoding
的用武之地。
UTF-8
、UTF-16
、UTF-32
等都是Character Encodings
,并且Unicode的代码点在这些编码中以不同的方式表示。
UTF-8
编码具有可变宽度长度,其中编码的字符可以占用1到4个字节;
UTF-16
具有可变长度,其中编码的字符可以采用1或2个字节(即8或16位)。这只表示所有称为BMP (基本多语言平面)的Unicode字符的一部分,对于几乎所有情况都足够了。Java的字符串和字符使用UTF-16
编码;
UTF-32
具有固定的长度,每个字符恰好占用4个字节(32位)。
https://stackoverflow.com/questions/5290182
复制相似问题