这是我最终想要的:
将unicode字符作为键和html代码+ unicode编号作为列表值的字典。
Basic_Latin = {
...
"@": ["U+0040", "@"],
...
}
如果只给出钥匙,怎么能实现?
我想到这样的事情:
Basic_Latin = {
...
"@": [to_unicode(@), to_html(@)],
...
}
如果发现很多方法可以反过来转换,但不是我想要的。
答案 0 :(得分:1)
符号包含的所有内容都是字符的Unicode代码点的十六进制和十进制值。使用ord()
function可以轻松获得该值,然后格式化生成的整数:
codepoint = ord('@')
unicode_codepoint = 'U+{:04X}'.format(codepoint) # four-digit uppercase hex
html_escape = '&#{:d};'.format(codepoint) # decimal number
或作为一种功能:
def codepoints(c):
codepoint = ord(c)
return ('U+{:04X}'.format(codepoint), '&#{:d};'.format(codepoint))
该函数返回一个元组而不是一个列表;据推测,这并不需要是可变的。您可能需要考虑使用namedtuple
class,以便也可以使用属性访问。
演示:
>>> def codepoints(c):
... codepoint = ord(c)
... return ('U+{:04X}'.format(codepoint), '&#{:d};'.format(codepoint))
...
>>> codepoints('@')
('U+0040', '@')