常用的ofc,克林贡不计算: - )
谢谢,伙计们,让我运行willItFit()testcases
好的,现在我想出了UTF-8的保存字节导致的问题多于解决问题,再次感谢
答案 0 :(得分:9)
需要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
答案 1 :(得分:5)
我们走了:
所以前128个字符(US-ASCII) 需要一个字节。接下来的1,920 字符需要两个字节来编码。 这包括拉丁字母 来自希腊语的变音符号和字符, 西里尔文,科普特文,亚美尼亚文,希伯来文, 阿拉伯语,叙利亚语和Tāna字母表。 休息需要三个字节 基本的多语言平面( 几乎包含所有字符 常用)。需要四个字节 其他平面中的人物 Unicode,包括不太常见的CJK 人物和各种历史 脚本。
更多详情:
http://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes,基本多语言平面,代码来自0x8000。
一些例子:印度语脚本,泰语,菲律宾文字,平假名,片假名。所有东亚剧本和其他一些剧本。
答案 2 :(得分:2)
你甚至只需要三个字节用于英语。例如,印刷正确的撇号以UTF-8编码为0xE2 0x80 0x99
,开头引号为0xE2 0x80 0x9C
,结束引号为0xE2 0x80 0x9D
。省略号为0xE2 0x80 0xA6
。而且甚至没有谈论所有不同的破折号,空格或英寸和英尺标志。
“没有撇号的帮助,写英文有点难......”
答案 3 :(得分:0)
许多亚洲语言的表示使用超过2个字节。虽然它们可能并不特别需要,但日语和韩语(至少)通常以多字节形式表示。