2

我试图弄清楚 Unicode 类别的基数,例如Lo. 似乎我找不到有关此的权威信息。例如Fileformat.info11788维护这个类别中有字符的视图,Codepoints.net低至122,而 Python 的unicodedata,即使仅限于基本平面,也提供了45301!:

In [219]: Lo=[unichr(c) for c in xrange(65536) 
              if unicodedata.category(unichr(c)) == 'Lo']

In [220]: len(Lo)
Out[220]: 45301

任何人都可以指出一个可靠的来源来解决这个问题吗?!

编辑:

Python 代码段中的结果len(Lo)取决于所使用的UCD版本,因此取决于 Python 版本。我的结果是 Python 2.6 使用 UCD 5.1 版,Python 2.7 和 UCD 5.2 产生45877相同的表达式,而 Python 3.2 和 UCD 6.0 可能会产生另一个数字。

4

2 回答 2

2

最终信息将是Unicode 标准本身。特别是,有关字符数据库的信息可在此处获得,其中提供了有关 Unicode 字符数据库的信息。当前标准有 11788 个 Lo 分类代码点。

于 2012-08-03T08:22:14.360 回答
1

引用 Python 的文档unicodedata

该模块提供对 Unicode 字符数据库的访问,该数据库定义了所有 Unicode 字符的字符属性。此数据库中的数据基于可从ftp://ftp.unicode.org/公开获得的 UnicodeData.txt 文件版本 5.2.0 。

该模块使用 UnicodeData 文件格式 5.2.0 定义的相同名称和符号(参见 http://www.unicode.org/reports/tr44/tr44-4.html)。它定义了以下函数:

Unicode 联盟在他们的“关于我们”中:

Unicode 联盟是一个非营利组织,致力于开发、维护和推广软件国际化标准和数据,特别是 Unicode 标准,它规定了所有现代软件产品和标准中的文本表示。Unicode 联盟积极开发国际化领域的标准,包括定义 Unicode 字符之间的行为和关系。该联盟与 W3C 和 ISO 密切合作,特别是与负责维护 ISO/IEC 10646 的 ISO/IEC/JTC 1/SC2/WG2,这是与 Unicode 标准同步的国际标准。

查看主页,当前标准似乎是 6.1(2012 年 5 月),因此可能自 5.2 版(2009 年 10 月)以来,一些“Lo”字符已被重新分类。

检查:http ://www.unicode.org

于 2012-08-03T08:27:51.743 回答