【问题标题】:Emacs 23 uses character set four times larger than Unicode - why?Emacs 23 使用的字符集是 Unicode 的四倍——为什么?
【发布时间】:2009-11-04 14:49:21
【问题描述】:

来自 Emacs 23.1 NEWS

*** Emacs 字符集现在是 Unicode 的超集。 (它大约有 四倍的代码空间,其中 应该很多)。

稍后会详细介绍:

*** 在多字节缓冲区和字符串中,字符由 UTF-8 表示 字节序列。字符代码 空间现在是 0x0..0x3FFFFF 没有 差距;代码点 0x0..0x10FFFF 是 相同代码的 Unicode 字符 点,而代码点 0x3FFF80..0x3FFFFF 是原始的 8 位 字节。

根据维基百科,UCSBMP 有65536 个字符,最新版本的Unicode 包含超过107000 个字符,UCS 有超过一百万个代码点。 0x3FFFFF 超过四百万。

可以解决哪些问题,或者拥有作为 Unicode 超集的内部字符集有什么好处?

【问题讨论】:

    标签: emacs unicode emacs23


    【解决方案1】:

    Unicode 旨在包含所有人类语言所需的字符集,这对于代码的全球化/本地化当然很有用,但由于 Emacs 本身就是众神的工具,它还必须包含所有可能出现的字符被各种神祇使用(包括但不限于古圣的可怕符文)、航天种族(包括但不限于我们未来的外星霸主)、超智能机器智能(包括但不限于我们的未来的机器人大师)和其他所有渴望无限宇宙力量的存在。这可能是一大堆字符!

    或者它可能与 UTF-8 是一种编码字符的方式有关,它的空间比 Unicode 集和 Emacs 只支持整个 UTF-8 占用的空间大得多,但我更喜欢我上面的解释。

    【讨论】:

    • UTF-8 是 Unicode 字符集的编码。两者都不是另一个的子集/超集。
    • 请注意,Unicode 是一个字符集,而 UTF-8 是 Unicode 字符集的字节编码(即,UTF-8 是一种表示 Unicode 字符集中任何“抽象字符”序列的方法作为字节序列)。
    • 已编辑以与上面的 cmets 更紧密地结合在一起。谢谢你的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2021-06-25
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多