在Python中,我可以按名称打印一个unicode字符(例如print(u'\N{snowman}')
)。有没有办法获得所有有效名称的列表?
答案 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上
在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)]