Unicode映射到语言

时间:2012-06-11 03:53:35

标签: unicode encoding mapping

这个问题可能是堆栈溢出的边界,所以如果它看起来过于偏离主题,我会提前道歉。我正在编写一个涉及多种语言的程序,我需要一个将 languages 映射到Unicode点的表。那些熟悉Unicode的人会知道字符被划分为“块”,如拉丁语,西里尔语等。当然,大多数使用拉丁字符的语言都不使用 all 拉丁字符,大多数使用西里尔字符的语言不使用所有西里尔字符等。我感兴趣的是一个表格,只将英语映射到英语中使用的字符,西班牙语只映射到西班牙语中使用的字符,没有必要覆盖世界上的每种语言(因为这几乎是不可能的),但至少有一些比较常见的语言。 (即便如此,这将是一个涉及多对多关系的相当广泛的表。)我不确定这样的表是否存在。 (如果没有,我可以把它变成一个开源项目,因为它对我和其他人都非常有用。)

1 个答案:

答案 0 :(得分:7)

Unicode公共区域设置数据存储库

CLDR包含大量语言的字符集的定义。 exemplarCharacters元素指定正常编写语言单词所需的字符。可以在By-Type Chart: misc.exemplarCharacters页面上(通过编写系统分组)查看此元素的当前定义,但是对于自动处理,您可能会发现XML文件更合适。 exemplarCharacters-other元素当前包含标点符号的类似数据。

这可能是这类信息的最佳可用汇编,但它在概念上非常模糊(它并没有真正尝试定义用于编写语言的字符意味着什么),并且不同语言的信息具有在一个开放的过程中收集,但不包含一般的质量控制。

元素的含义在LDML规范第5.6 Character Elements条中定义。请注意描述“<characters>元素提供有关区域设置中常用字符的可选信息,以及有助于选择适合区域设置的资源或数据的信息,例如在选择字符编码时通常用于以语言环境的语言传输数据。“这是一个相当奇怪的观点,特别是在Unicode Consortium文档中,因为我们可以使用UTF-8,它涵盖了所有语言。但是有其他问题,其中有关语言中使用的字符的信息可能有用,例如选择文本字体,或输入数据的初步检查,或设置OCR扫描的参数,或定义键盘设置。对于“语言中使用的字符”这一概念,这些上下文可能需要不同的定义。