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

标签 string language-agnostic unicode encoding

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

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

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

我读了Wikipedia article about Unicode但这对我来说相当困难。我期待看到一个简单的答案。

最佳答案

奇怪的是,没有人指出如何计算一个 Unicode 字符占用了多少字节。以下是 UTF-8 编码字符串的规则:

Binary    Hex          Comments
0xxxxxxx  0x00..0x7F   Only byte of a 1-byte character encoding
10xxxxxx  0x80..0xBF   Continuation byte: one of 1-3 bytes following the first
110xxxxx  0xC0..0xDF   First byte of a 2-byte character encoding
1110xxxx  0xE0..0xEF   First byte of a 3-byte character encoding
11110xxx  0xF0..0xF7   First byte of a 4-byte character encoding

所以简单的回答是:它需要 1 到 4 个字节,具体取决于第一个字节,它将指示它将占用多少字节。

关于string - 一个 Unicode 字符占用多少字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5290182/

相关文章:

javascript - 将 Unicode "name"与 JavaScript 正则表达式匹配

c - 如何在数组中使用字符串查找所需的特定字母

language-agnostic - 成本、进度、质量 : pick two

database - 在文件系统中存储图片时,使用相对路径还是绝对路径?

php - 为给定的正则表达式创建一组所有可能的匹配项

Python 将 JSON 反序列化为 unicode 时出现问题

mysql - 更改sql文件中的字符

javascript - 检查字符串是否包含任何没有正则表达式的字符串数组

c++ - 字符串数组的动态分配 C++

java - Google map 查询返回的 JSON 包含像\x26 这样的编码字符(如何解码?)