为什么我们需要UCS和Unicode字符集?

时间:2012-01-14 05:35:53

标签: unicode ucs

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

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

2 个答案:

答案 0 :(得分:17)

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

很难猜测你是否真的意味着不同的编码或不同的标准。但对于后者,Unicode和ISO 10646最初是两个不同的标准化工作,具有不同的目标和策略。然而,它们在20世纪90年代早期得到了协调,以避免因两种不同标准造成的混乱。它们已经过协调,因此代码点确实相同。

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

答案 1 :(得分:9)

代码点是相同的但存在一些差异。 来自the Wikipedia entry about the differences between Unicode and ISO 10646 (i.e. UCS)

  

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

您可能会发现阅读the Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

非常有用

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