【发布时间】:2019-12-14 13:11:15
【问题描述】:
我有一串 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,即ही बोल
【问题讨论】:
-
你想达到什么目的?你有字节(一个 UTF-8 编码的字符串)。你想用它做什么?
b'\xe0\xa4\xb9\xe0\xa5\x80 \xe0\xa4\xac\xe0\xa5\x8b\xe0\xa4\xb2'.decode('utf8')是你要找的吗? -
字节串错误,应该是b'\xe0\xa4\xb9\xe0\xa5\x80 \xe0\xa4\xac\xe0\xa5\x8b\xe0\xa4\xb2
-
所以你的起点是字符串“ही बोल”?如果是这样,您可能正在寻找
'ही बोल'.encode('utf-8')。 -
'ही बोल 不是起点。这是 '\xe0\xa4\xb9\xe0\xa5\x80 \xe0\xa4\xac\xe0\xa5\x8b\xe0\xa4\xb2' ही बोल 是最终预期结果
-
我不明白。你的出发点和你的结果似乎是一样的。如果是这样,则不需要处理。如果您提供更大的上下文可能会有所帮助:数据来自哪里以及以什么格式?需要去哪里,以什么形式?
标签: python unicode utf-8 character-encoding hindi