unicode字符名称列表

时间:2015-05-18 12:04:38

标签: python unicode

在Python中,我可以按名称打印一个unicode字符(例如print(u'\N{snowman}'))。有没有办法获得所有有效名称的列表?

7 个答案:

答案 0 :(得分:8)

每个代码点都有一个名称,因此您实际上要求whole Unicode standard

每个Python版本都支持Unicode标准的特定版本; unicodedata.unidata_version attribute告诉你哪个给定的Python运行时。

每个代码点,unicodedata.name() function可以告诉您正式名称,unicodedata.lookup()为您提供反向(代码点的名称)。

答案 1 :(得分:2)

是的,有办法。浏览所有现有代码点并在每个代码点上调用unicodedata.name()。像这样:

names = []
for c in range(0, 0x10FFFF + 1):
    try:
        names.append(unicodedata.name(c))
    except KeyError:
        pass
# Do something with names

答案 2 :(得分:1)

对于给定的代码点,您可以使用unicodedata.name。为了得到它们,你可以通过所有数十亿来查看哪些有这样的名字。

答案 3 :(得分:1)

如果您需要所有unicode字符名称的列表,请考虑下载Unicode Character Database。它包含在许多Linux发行版的基本存储库中(例如RHEL上的“unicode-ucd”)。该软件包包含“NamesList.txt”,其中包含unicode字符名称的详尽列表。

答案 4 :(得分:0)

如果要按名称插入unicode字符,但不知道名称。这是您获得Unicode字符名称的简单概述。

在Windows上

  1. 打开“角色图”(搜索charmap.exe并运行它)。
  2. 选择任何常见的Microsoft字体(这些字体往往定义了各种各样的unicode字符)。
  3. 单击地图上的任何字符以获取其Unicode字符名称。

在Mac上,它被称为“字符面板”,并在“系统偏好设置”下的“国际->输入”或“语言和文字->输入源”下打勾,在“字符面板”旁打勾

答案 5 :(得分:0)

只需打印所有内容:

import unicodedata 

for i in range(0x110000): 
    character = chr(i) 
    name = unicodedata.name(character, "") 
    if len(name) > 0: 
        print(f"{i:6} | 0x{i:04X} | {character} | {name}") 

答案 6 :(得分:0)

我的一支班轮,仅供我参考; p

import unicodedata
names = [unicodedata.name(chr(c)) for c in range(0, 0x10FFFF+1) if unicodedata.name(chr(c), None)]