【发布时间】:2011-01-28 23:45:58
【问题描述】:
字符集和字符编码有什么区别?当我说我使用的是 utf-8 编码时,我的字符集是什么?是否默认采用 unicode 作为字符集?
【问题讨论】:
标签: unicode character-encoding
字符集和字符编码有什么区别?当我说我使用的是 utf-8 编码时,我的字符集是什么?是否默认采用 unicode 作为字符集?
【问题讨论】:
标签: unicode character-encoding
像 MIME 这样的旧协议在真正表示“字符编码方案”时使用“字符集”。最初,不同的字符编码被认为是独立的字符库,而不是 Unicode 的子集。
【讨论】:
UTF-8 是 Unicode 字符集的编码。因此,如果您使用 UTF-8,则字符集是 Unicode,但您不必在任何地方单独指定它。 Unicode 的另一个主要编码是 UTF-16,它没有放入 8 位字节流,因为它包含零字节。如果你在处理字节序列中的 Unicode,它肯定被编码为 UTF-8。
除了 Unicode,字符集通常被认为具有单一的固定编码,然后字符集、字符集、代码页、编码等术语通常可以互换使用,或者取决于供应商。这很草率,但不会产生运行时问题。
我能想到的唯一可能的例外是东亚:JIS 和 EUC 最初为同一个字符集定义了多种编码,但在今天的实践中,每种编码都被单独处理。
【讨论】:
字符集:定义哪个字符有哪个数字代码点(ascii、jis、unicode)
编码:定义数字代码点的物理表示方式(utf、ucs、shiftjis)
【讨论】:
字符集定义了数字和字符之间的映射。几乎所有的字符集都说 65 是 A,并且一般都同意最多 127 的数字的映射。但是当涉及到 127 以上的数字时,它们可能有不同的立场。
有很多字符集
当您说字符编码时,您指的是 Unicode 代码点(一个字符)在内部是如何存储的。
这篇文章几乎完全基于 Joel Spolsky 在 Unicode 上的帖子:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets。阅读它以获得更好的想法。
【讨论】:
【讨论】: