哪个书写系统给出了字符集覆盖

时间:2016-12-07 22:31:41

标签: unicode language-agnostic

最简单的方法是找出一组给定的Unicode字符支持哪些书写系统(如拉丁语,希伯来语,阿拉伯语,片假名,汉字)?

3 个答案:

答案 0 :(得分:1)

检查集合中每个字符的ScriptScript_Extensions属性,如UAX #24中所述。

答案 1 :(得分:1)

<强> Scripts and Blocks

  

Unicode字符分为称为非重叠范围   阻止[Blocks]。其中许多块的名称来源于   脚本名称,因为该脚本的字符主要是编码的   在那个街区。但是,块和脚本在以下方面有所不同   方法:

     
      
  • 块只是范围,通常包含未分配的代码点。
  •   
  • 来自同一脚本的字符可以编码在几个不同的块中。
  •   
  • 来自不同脚本的字符可以编码在同一个块中。
  •   
     

因此,使用块名称作为脚本的简单替代   身份通常导致不良结果。例如,见附件A,   字符块,采用Unicode技术标准#18,"Unicode Regular Expressions" [UTS18]

在后一个文档[UTS18]中,请优先关注Annex A: Character Blocks中的编写系统与块

答案 2 :(得分:0)

此时我倾向于测试脚本中是否有足够的字形出现在字符集中。

这种方法需要两个准备步骤:

  1. 汇总一组Unicode支持的书写系统(脚本)

  2. 对于每个脚本,定义包含该脚本字符的字符集

  3. 然后我可以通过测试来解决“字符集A是否支持脚本X”这个问题“脚本X字符集的足够字符也是字符集A的成员”。如果我对步骤(1)中的每个脚本执行此操作,则会获得受支持脚本的列表。

    一二三提供的链接引用了一个data file,它将Unicode字符映射到各自的脚本,这在步骤(1)和(2)中是非常宝贵的。