代码之家  ›  专栏  ›  技术社区  ›  Free Consulting

当使用UTF-8编码时,是否有一种语言需要每个字符三个或更多字节?哪一个?

  •  0
  • Free Consulting  · 技术社区  · 14 年前

    常用OFC,克林贡不算数:—)

    谢谢,伙计们,让我运行willitfit()测试用例

    好的,现在我知道了用UTF-8保存字节比解决更多的问题,再次感谢。

    4 回复  |  直到 14 年前
        1
  •  9
  •   Michael Madsen    14 年前

    需要3个字节的字符从U+0800开始,以及所有后续字符,所以这是一个巨大的潜在字符数。其中包括东亚文字,如日语、中文、韩语和泰语。

    有关脚本范围的完整列表,请参阅 Unicode's block data . 只有这些块可以用1或2个字节表示,来自所有其他块的字符需要3或4个字节:

    0000..007F Basic Latin
    0080..00FF Latin-1 Supplement
    0100..017F Latin Extended-A
    0180..024F Latin Extended-B
    0250..02AF IPA Extensions
    02B0..02FF Spacing Modifier Letters
    0300..036F Combining Diacritical Marks
    0370..03FF Greek and Coptic
    0400..04FF Cyrillic
    0500..052F Cyrillic Supplement
    0530..058F Armenian
    0590..05FF Hebrew
    0600..06FF Arabic
    0700..074F Syriac
    0750..077F Arabic Supplement
    0780..07BF Thaana
    07C0..07FF NKo
    
        2
  •  5
  •   Andrey    14 年前

    我们走到这里:

    所以前128个字符(US-ASCII) 需要一个字节。下一个1920 字符需要两个字节进行编码。 包括拉丁字母和 来自希腊语的音调符号和字符, 西里尔文、科普特文、亚美尼亚文、希伯来文, 阿拉伯语、叙利亚语和t_na字母。 需要三个字节 休息 属于 基本多语言平面 包含中的几乎所有字符 常用)。需要四个字节 其他平面上的字符 Unicode,包括不太常见的CJK 人物与各种历史 脚本。

    更多细节:

    http://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes ,基本多语言平面,代码来自0x8000。

    例如:印度语、泰语、菲律宾语、平假名、片假名。所以所有的东亚剧本和其他一些。

        3
  •  2
  •   Jörg W Mittag    14 年前

    你甚至只需要三个字节的英语。例如,正确的撇号以utf-8编码为 0xE2 0x80 0x99 ,左引号标记为 0xE2 0x80 0x9C 右引号是 0xE2 0x80 0x9D . 省略是 0xE2 0x80 0xA6 . 这甚至不是说所有不同的破折号,空格或英寸和英尺标志。

    __it_trade有点难写英语没有撇号的帮助…__

        4
  •  0
  •   David Moye    14 年前

    许多亚洲语言都有超过2个字节的表示。虽然事实上,他们可能并不特别需要,但日语和韩语(至少)通常以多字节形式表示。

    推荐文章