У меня есть набор документов, которые содержат символы, закодированные как в UTF-8, так и в ISO-8859-1. Я бы хотел, чтобы они были только в кодировке UTF-8.
Когда я беру документ и декодирую его в UTF-8 с помощью doc.decode('utf-8')
, я получаю некоторые escape-последовательности Unicode, такие как \u2022
, но у меня также есть много символов, таких как \xa0
, которые, как мне кажется, являются ISO-8859-1. Я хотел бы преобразовать их в их эквиваленты в Юникоде, чтобы все счастливо жили вместе. Это возможно? Я использую Python 2.74.
Я сделал вот что:
decoded_doc = doc.decode('utf-8')
new_doc = decoded_doc.replace(u'\xa0',u' ')
но есть и другие странные персонажи, такие как \xb7
- я хочу получить их всех одним махом.
\u
, не означает, что это не юникод? - person John Thompson   schedule 17.04.2013u'\xa0' == u'\u00A0' == u'\200'
- person Gareth Rees   schedule 17.04.2013utf-8
без создания исключения, вероятно, у вас с самого начала был действительныйutf-8
. Возможно, ваш источник уже испортил символы до того, как он был закодирован вutf-8
, но это уже другая проблема. - person Mark Ransom   schedule 17.04.2013