如何在 python 中有效地在 unicode 代码点和 UTF-8 文字之间进行转换?

How to efficiently convert between unicode code points and UTF-8 literals in python?

我有大量 table 个 unicode 代码点:http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt

我想渲染,为了这样做:我知道代码点必须转换为 utf-8 文字字符串,然后该文字字符串(被视为字节对象)可以是转换成我要渲染的字符。

作为给定十六进制数的具体示例:

"00A1"

我需要将其转换为表达式:

"\xc2\xa1"

然后在 python 中很容易将其转换为字符“¡”。

我的问题是如何将“00A1”转换为“\xc2\xa1”,反之亦然[最好使用内置方法或流行的第 3 方库]

似乎没有支持该功能的内置方法。

我目前的工作:

string.encode 方法允许我们将“¡”转换为“\xc2\xa1”

bytestring.decode 方法允许我们将“\xc2\xa1”转换为“¡”

但不幸的是,访问字符的十六进制索引表示(从 00A1 来回转换)对我来说仍然遥不可及。

实际上,我认为您在这里根本不需要通过 utf-8。 int 会给你代码点

>>> int('00A1', 16)
161

然后就是 chr

>>> chr(161)
'¡'