【问题标题】:How to efficiently convert between unicode code points and UTF-8 literals in python?如何在 python 中有效地在 unicode 代码点和 UTF-8 文字之间进行转换?
【发布时间】:2020-05-06 03:11:46
【问题描述】:

我有一个大的 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 来回转换)。

【问题讨论】:

    标签: python unicode utf-8


    【解决方案1】:

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

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

    然后就是chr

    >>> chr(161)
    '¡'
    

    【讨论】:

    • 如果您真的需要 UTF-8,您可以在获得 Unicode 字符串后对其进行编码:chr(161).encode('utf-8')
    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 2012-06-20
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2010-12-24
    相关资源
    最近更新 更多