【问题标题】:Details of Unicode Names \N Documented? [duplicate]Unicode 名称的详细信息 \N 已记录? [复制]
【发布时间】:2018-05-13 07:53:54
【问题描述】:

看起来,基于urwid exampleu'\N{HYPHEN BULLET} 将创建一个 Unicode 字符,该字符是用于项目符号的连字符。

Unicode 字符的名称似乎在fileformat.info 中定义,而在Python 中使用Unicode 的一些元素出现在howto documentation 中。虽然没有提到\N{} 语法。

如果您将所有这些文档放在一起,您会发现常量u"\N{HYPHEN BULLET}" 创建了一个⁃

但是,这都是基于将所有这些数据汇总在一起的理论。我在 Python 文档中找不到"\N{} 的文档。

我的问题是我的操作理论是否正确以及它是否在任何地方都有记录?

【问题讨论】:

标签: python python-2.7 unicode


【解决方案1】:

并不是每一个血淋淋的细节都可以在操作指南中找到。参考手册中的table of escape sequences包括:

转义序列:\N{name}
含义:Unicode 数据库中名为name 的字符(仅限Unicode)

【讨论】:

    【解决方案2】:

    u"\N{CHARACTER NAME} 在 Python 中生成一个有效的 unicode 字符是正确的。

    Python 文档中没有太多的文档记录,但经过一番搜索后,我在 effbot.org 上找到了对它的引用

    http://effbot.org/librarybook/ucnhash.htm

    ucnhash 模块

    (Implementation, 2.0 only) 这个模块是一个实现模块, 它为 Unicode 字符串提供了名称到字符代码的映射 文字。如果此模块存在,您可以使用 \N{} 转义来映射 Unicode 字符名称到代码。

    在 Python 2.1 中,此模块的功能已移至 unicodedata 模块。

    检查 unicodedata 的文档表明该模块正在使用 Unicode 字符数据库中的数据。

    unicodedata — Unicode 数据库

    此模块提供对 Unicode 字符数据库 (UCD) 的访问 它定义了所有 Unicode 字符的字符属性。这 此数据库中包含的数据是根据 UCD 版本编译的 9.0.0.

    完整数据见:https://www.unicode.org/Public/9.0.0/ucd/UnicodeData.txt

    数据的结构为:HEXVALUE;CHARACTER NAME;etc..,因此您可以使用此数据查找字符。

    例如:

    # 0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;
    >>> u"\N{LATIN CAPITAL LETTER A}"
    'A'
    
    # FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;;
    >>> u"\N{HALFWIDTH KATAKANA LETTER SA}"
    'サ'
    

    【讨论】:

      【解决方案3】:

      \N{} 语法至少记录在 Unicode HOWTO 中。

      名称记录在 Unicode 标准中,例如:

      http://www.unicode.org/Public/UCD/latest/ucd/NamesList.txt
      

      unicodedata 模块可以查找字符的名称:

      >>> import unicodedata as ud
      >>> ud.name('A')
      'LATIN CAPITAL LETTER A'
      >>> print('\N{LATIN CAPITAL LETTER A}')
      A
      

      【讨论】:

        猜你喜欢
        • 2017-05-13
        • 1970-01-01
        • 1970-01-01
        • 2021-01-20
        • 2021-03-10
        • 1970-01-01
        • 1970-01-01
        • 2016-03-26
        • 1970-01-01
        相关资源
        最近更新 更多