系统(不受我控制)发送$lookup
编码的字符串(例如Öland),我可以将其转换为latin-1
但不返回utf-8
。
考虑以下代码:
latin-1
这是输出:
Öland b'\xd6land'
现在,我如何模仿系统?
显然text = '\xc3\x96land' # This is what the external system sends
iso = text.encode(encoding='latin-1') # this is my best guess
print(iso.decode('utf-8'))
print(u"Öland".encode(encoding='latin-1'))
不是'\xc3\x96land'
答案 0 :(得分:0)
如果您的外部系统将其发送给您,那么您应首先对其进行解码而不是对其进行编码,因为它是以编码方式发送的。
你不必编码编码!!
hey=u"Öland".encode('latin-1')
print hey
提供类似?land
print hey.decode('latin-1')
提供类似Öland
答案 1 :(得分:0)
原来外部系统已经在utf-8中发送数据了。 现在正好转换字符串就像这样:
#!/usr/bin/env python3.4
# -*- coding: utf-8 -*-
text = '\xc3\x96land'
encoded = text.encode(encoding='raw_unicode_escape')
print(encoded)
utf8 = encoded.decode('utf-8')
print(utf8)
mimic = utf8.encode('utf-8', 'unicode_escape')
print(mimic)
输出
b'\xc3\x96land' Öland b'\xc3\x96land'
感谢您的支持!