11

我猜 UCS 和 Unicode 的代码点是一样的,对吗?

在那种情况下,为什么我们需要两个标准(UCS 和 Unicode)?

4

2 回答 2

18

它们不是两个标准。通用字符集 (UCS) 不是标准,而是在标准中定义的东西,即 ISO 10646。这不应与编码混淆,例如 UCS-2。

很难猜测您实际上是指不同的编码还是不同的标准。但对于后者,Unicode 和 ISO 10646 原本是两个不同的标准化工作,具有不同的目标和策略。然而,它们在 1990 年代初期得到了协调,以避免两种不同标准造成的所有混乱。它们经过协调,因此代码点确实相同。

但是,它们保持不同,部分原因是 Unicode 是由一个行业联盟定义的,该联盟可以灵活地工作,并且对标准化简单代码点分配之外的事物非常感兴趣。Unicode 标准定义了大量的原则和处理规则,而不仅仅是字符。ISO 10646 是一个正式的标准,可以在 ISO 及其成员的标准和其他文件中引用。

于 2012-01-14T06:40:39.160 回答
10

代码点相同,但存在一些差异。从关于 Unicode 和 ISO 10646(即 UCS)之间差异的维基百科条目

它们之间的区别在于,Unicode 增加了 ISO 10646 范围之外的规则和规范。ISO 10646 是一个简单的字符映射,是 ISO 8859 等以前标准的扩展。相比之下,Unicode 增加了排序规则、表单规范化、以及希伯来语和阿拉伯语等脚本的双向算法

您可能会发现阅读每个软件开发人员绝对、肯定必须了解 Unicode 和字符集的绝对最小值(没有借口!)

我认为差异来自代码点的编码方式。UCS-x 使用固定数量的字节来编码代码点。例如,UCS-2 使用两个字节。但是,UCS-2 不能对需要超过 2 个字节的代码点进行编码。另一方面,UTF 使用可变数量的字节进行编码。例如,UTF-8 至少使用一个字节(用于 ascii 字符),但如果字符超出 ascii 范围,则使用更多字节。

于 2012-01-14T05:55:34.843 回答