gpt4 book ai didi

Python ASCII 到 Unicode

转载 作者:行者123 更新时间:2023-11-28 21:56:02 24 4
gpt4 key购买 nike

我已经知道如何从 u'\u4f60\u597d' 得到这个 '4f60597d'

>>> u_str= u'你好'
>>> repr(u_str).replace('\u', '')[2:-1]
'4f60597d'

但是如果字符串中有一些ascii:

>>> u_str= u'12你好'    
>>> repr(u_str).replace('\u', '')[2:-1]
'124f60597d'

不是我想要的结果。

我希望我能得到这样的输出:003100324f60597d

你能告诉我吗?

最佳答案

您可以使用 ord() 获取每个字符的整数代码点并格式化为:

''.join(format(ord(c), '04x') for c in u_str)

演示:

>>> u_str = u'12你好'  
>>> ''.join(format(ord(c), '04x') for c in u_str)
'003100324f60597d'

或者您可以编码为 UTF-16(大端)并使用 binascii.hexlify()关于结果;这可能是更快的选择:

from binascii import hexlify

hexlify(u_str.encode('utf-16-be'))

演示:

>>> from binascii import hexlify
>>> hexlify(u_str.encode('utf-16-be'))
'003100324f60597d'

后者还处理 BMP 之外的字符,每个代码点需要 4 个字节,这将使用 UTF-16 代理项对进行编码:

>>> hexlify(u'\U0001F493'.encode('utf-16-be'))
'd83ddc93'

关于Python ASCII 到 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22150447/

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