gpt4 book ai didi

python - 如何以编程方式从十六进制中检索 unicode 字符?

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:19 24 4
gpt4 key购买 nike

给定与 unicode 对应的十六进制列表,如何以编程方式检索 unicode 字符?

例如给定列表:

>>> l = ['9359', '935A', '935B']

如何实现这个列表:

>>> u = [u'\u9359', u'\u935A', u'\u935B']
>>> u
['鍙', '鍚', '鍛']

我试过了,但它抛出一个SyntaxError:

>>> u'\u' + l[0]
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape

最佳答案

\uhhhh 转义仅在字符串文字中有效,您不能使用它们将任意十六进制值转换为字符。换句话说,它们是更大语法的一部分,不能单独使用。

将十六进制值解码为整数并将其传递给 chr() function (或者,在 Python 2 上,unichr() function):

[chr(int(v, 16)) for v in l]  # 

可以让Python 将包含文字\uhhhh 文本 的字符串解释为带有unicode_escape codec 的Unicode 字符串文字。 ,但对于单个代码点来说感觉有点矫枉过正:

[(b'\\u' + v.encode('ascii')).decode('unicode_escape') for v in l]

请注意添加的前缀中的双反斜杠,我们必须创建字节字符串才能使其正常工作。

演示:

>>> l = ['9359', '935A', '935B']
>>> [chr(int(v, 16)) for v in l]
['鍙', '鍚', '鍛']
>>> [(b'\\u' + v.encode('ascii')).decode('unicode_escape') for v in l]
['鍙', '鍚', '鍛']

关于python - 如何以编程方式从十六进制中检索 unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44881870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com