我有一串UTF-8文字

'\ xe0 \ xa4 \ xb9 \ xe0 \ xa5 \ x80 \ xe0 \ xa4 \ xac \ xe0 \ xa5 \ x8b \ xe0 \ xa4 \ xb2'转换为

在印地语中。我无法将string a转换为字节

a = '\xe0\xa4\xb9\xe0\xa5\x80 \xe0\xa4\xac\xe0\xa5\x8b\xe0\xa4\xb2'
#convert a to bytes
#also tried a = bytes(a,'utf-8')
a = a.encode('utf-8')
s = str(a,'utf-8')



  字符串转换为字节,但包含错误的unicode文字


结果:b'\xc3\xa0\xc2\xa4\xc2\xb9\xc3\xa0\xc2\xa5\xc2\x80 \xc3\xa0\xc2\xa4\xc2\xac\xc3\xa0\xc2\xa5\xc2\x8b\xc3\xa0\xc2\xa4\xc2\xb2'打印-हॠबà¥à¤²

预期的:应为b'\xe0\xa4\xb9\xe0\xa5\x80\xe0\xa4\xac\xe0\xa5\x8b\xe0\xa4\xb2,应为हीबोल

最佳答案

使用raw-unicode-escape编解码器将字符串编码为字节,然后可以解码为UTF-8。

>>> s = '\xe0\xa4\xb9\xe0\xa5\x80 \xe0\xa4\xac\xe0\xa5\x8b\xe0\xa4\xb2'
>>> s.encode('raw-unicode-escape').decode('utf-8')
'ही बोल'


这是一种解决方法。理想的解决方案是防止数据源将原始字节字符串化。

关于python - Python 3:将UTF-8 Unicode印地语文字转换为Unicode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59335416/

10-12 20:58