据我所知,编码字符集将数字(称为代码点)映射/分配到(抽象)字符(例如,德语字符ü到unicode中的代码点00FC )。
这个代码点可以用不同的方式编码(例如,以字节模式表示):
UTF-8 (1字节)、UTF-16 (2字节)和UTF-32 (4字节)
所以这个过程是:
(摘要)字符->映射到码位(编码)字符集-->码位编码为1...n字节
为什么是代码点的中间阶段?为什么(抽象)字符不能直接映射到1...n字节?
(摘要)字符-->映射到1...n字节
这个中间阶段(为字符分配数字)也是在其他(编码的)字符集中完成的。因此,这肯定有很好的理由。
我想知道为什么没有直接映射到字节,以及是否有字符集没有这个中间阶段,直接映射到字节。
先谢谢你...
发布于 2017-08-26 07:25:24
为什么(抽象)字符不能直接映射到字节?
要做到这一点,我们必须有一个单字节编码方案,每个人都认为这个方案对所有可能的场景都是最好的。
我们离实现这一目标还有很长的路要走。UTF-8、-16和-32-更不用说所有其他永远不会消失的遗留编码了-它们都有不同的优点,并被不同的社区用于不同的目的。
对于不可避免的多字节编码,您需要在它们后面有一个统一的编码字符集,以便每种编码都可以来回映射到该字符集。另一种选择是,您必须在每对可能的编码之间进行映射表的组合爆炸。
(这就是我们在Unicode之前所拥有的。这些表格是不完整的、有损的和不一致的。这并不是一个好时期。)
https://stackoverflow.com/questions/45876370
复制相似问题