Unicode 名称的详细信息 \N 已记录?

Ray*_*emi 7 python unicode python-2.7

它似乎基于urwid 示例,该示例u'\N{HYPHEN BULLET}将创建一个 unicode 字符,该字符是用于项目符号的连字符。

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

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

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

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

Sto*_*ica 6

并非所有血淋淋的细节都可以在操作方法中找到。参考手册中的转义序列表包括:

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


alx*_*wrd 6

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

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

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

ucnhash 模块

(实现,仅限 2.0)该模块是一个实现模块,它为 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}"
'?'
Run Code Online (Sandbox Code Playgroud)