如何将'blah \ xe9 blah'转换为'blahéblah'

时间:2014-11-29 00:15:56

标签: python unicode

我正在研究一些从外部API获取大量字符串的python代码。字符串是常规的python字符串,带有奇怪的“斜杠”字符。我认为这意味着实际数据是UTF-8,但是python认为它是ascii(或者更确切地说是其他一些不正确的编码)。解决方案(我假设)是对字符串运行某种操作来“修复它”。但是我知道的每种转换方式都会返回错误:

>>> s = 'blah \xe9 blah'
>>> unicode(s)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 5: ordinal not in range(128)
>>> s.decode('utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 5: invalid continuation byte
>>> s.encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 5: ordinal not in range(128)

1 个答案:

答案 0 :(得分:1)

那不是UTF-8。

>>> print 'blah \xe9 blah'.decode('latin-1')
blah é blah