【问题标题】:Unicode mapping to languagesUnicode 到语言的映射
【发布时间】:2012-06-11 03:53:35
【问题描述】:

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

【问题讨论】:

  • 您要达到的目标是什么?您不应将特定语言的用户限制在特定的子曲目中;有些瑞典人的名字中有法语 è,有些法国人使用德语借词,有些人混合使用多种语言,甚至在同一份文件中。对于语言识别,比单个字符更长的序列可能更有用;看看 CPAN 的 Language::Guess 模块,它结合了 Unicode 块信息和传统的 n-gram 语言分类器。 mailman.uib.no/public/corpora/2011-April/012879.html

标签: unicode encoding mapping


【解决方案1】:

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

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

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

【讨论】:

  • 哇,这正是我要找的!我曾多次访问 unicode.org,但不知何故错过了 CLDR。
猜你喜欢
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多