0

常用的 ofc,克林贡语不算 :-)

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

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

4

4 回答 4

9

需要 3 个字节的字符从 U+0800 和所有后续字符开始,因此有大量的潜在字符。这包括东亚文字,例如日语、中文、韩语和泰语。

有关脚本范围的完整列表,您可以参考Unicode 的块数据。只有这些块可以用 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
于 2010-09-07T21:00:40.303 回答
5

开始了:

所以前 128 个字符(US-ASCII)需要一个字节。接下来的 1,920 个字符需要两个字节来编码。这包括带有变音符号的拉丁字母和来自希腊语、西里尔语、科普特语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和塔纳语字母的字符。基本多语言平面的其余部分需要三个字节(其中包含几乎所有常用字符)。Unicode 的其他平面中的字符需要四个字节,其中包括不太常见的 CJK 字符和各种历史脚本。

更多细节:

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

一些示例:印度文字、泰文、菲律宾文字、平假名、片假名。所以所有东亚脚本和其他一些脚本。

于 2010-09-07T21:03:20.297 回答
2

您甚至只需要三个字节来表示英语。例如,印刷正确的撇号在 UTF-8 中编码为0xE2 0x80 0x99,左引号是0xE2 0x80 0x9C,右引号是0xE2 0x80 0x9D。省略号是0xE2 0x80 0xA6。这甚至还没有讨论所有不同的破折号、空格或英寸和英尺标志。

“没有撇号的帮助,写英文有点难……”</p>

于 2010-09-08T02:54:46.527 回答
0

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

于 2010-09-07T21:01:31.347 回答