(编码)字符集 - 为什么映射到unicode中的代码点?

时间:2017-08-25 07:29:51

标签: unicode encoding utf-8 character

据我所知,编码字符集将数字(称为代码点)映射/分配给(抽象)字符(例如,德语字符ü到unicode中的代码点00FC)。

可以用不同的方式对该代码点进行编码(例如以字节模式表示):

UTF-8(1字节),UTF-16(2字节)和UTF-32(4字节)

所以过程是:

(摘要)字符--->映射到代码点(编码)字符集 - >代码编码指向1 ... n字节

为什么这个代码的中间阶段指向?为什么(抽象)字符没有直接映射到1 ... n个字节?

(摘要)字符 - >映射到1 ... n字节

此中间阶段(将字符分配给字符)也在其他(编码)字符集中完成。所以必须有充分的理由。

我想理解为什么没有直接映射到字节,如果有字符集没有这个中间阶段并直接映射到字节。

提前致谢...

1 个答案:

答案 0 :(得分:0)

  

为什么(抽象)字符不直接映射到字节?

要做到这一点,我们必须有一个单字节编码方案,每个人都认为最适合每种可能的情况。

我们还有很长的路要走。 UTF-8,-16和-32-更不用说所有其他永远不会消失的遗留编码 - 所有这些编码都具有不同的优势,并且被不同的社区用于不同的目的。

在不可避免的情况下使用多字节编码时,您需要在它们后面使用统一的编码字符集,以便每个编码可以来回映射到该字符集。另一种方法是,您必须在每对可能的编码之间进行映射表的组合爆炸。

(这就是我们在Unicode之前所拥有的。这些表格不完整,有损且不一致。这不是好时光。)