【问题标题】:How do I convert 'blah \xe9 blah' to 'blah é blah'如何将 'blah \xe9 blah' 转换为 'blah é blah'
【发布时间】:2014-11-29 00:15:55
【问题描述】:

我正在编写一些从外部 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)

【问题讨论】:

  • print 'blah \xe9 blah'.decode("latin-1")

标签: python unicode


【解决方案1】:

那不是 UTF-8。

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

【讨论】:

  • 这个字符串怎么样:'Al\xf3nnisos Town'?我仍然收到错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多