在python中将unicode字符转换为utf8

2024-10-02 20:34:52 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能告诉我如何在python中将unicode字符转换成utf-8吗?在

例如:

输入

输出-E0A485 E0A485 E0A498 EA9784

我在python控制台中尝试了以下方法:

python-prompt>>> character = "अ"

python-prompt>>> character

python-prompt>>> '\xe0\xa4\x85'

在上面的例子中,如果我只是在控制台中打印变量“character”,我将得到“\xe0\xa4\x85”作为输出。但我需要E0A485格式的输出。简而言之,我得到的输出'\xe0\xa4\x85'有3个'\x'转义字符。我怎样才能摆脱这些'\x's'?所以我的输出是e0a485或e0a485


Tags: 方法unicode字符prompt中将utf例子character
2条回答

可以将encode与反斜杠替换标志一起使用,如下所示:

>>> character.encode('ascii', 'backslashreplace')
b'\\u0905 \\u0905 \\u0918 \\ua5c4'

如果您希望它是大写的,您可以随时添加.upper()。在

只需对unicode字符串调用encode(),然后调用^{}。在

s = u'\u0905 \u0905 \u0918 \ua5c4'
print s
अ अ घ ꗄ
s_utf8 = s.encode('utf8')
print s_utf8
अ अ घ ꗄ
>>> s_utf8
'\xe0\xa4\x85 \xe0\xa4\x85 \xe0\xa4\x98 \xea\x97\x84'
>>> from binascii import hexlify
>>> hexlify(s_utf8)
>>> 'e0a48520e0a48520e0a49820ea9784'

如果要保留空间,可以执行以下操作:

^{pr2}$

或者一次性:

>>> s
u'\u0905 \u0905 \u0918 \ua5c4'
>>> ' '.join(hexlify(c.encode('utf8')) for c in s.split())
'e0a485 e0a485 e0a498 ea9784'
>>> b' '.join(hexlify(c.encode('utf8')) for c in s.split())    # Python 3
b'e0a485 e0a485 e0a498 ea9784'

您可以对结果字符串调用upper(),以生成'E0A485 E0A485 E0A498 EA9784'

相关问题 更多 >