UTF-8 в Python - PullRequest
       39

UTF-8 в Python

1 голос
/ 15 февраля 2011

Это, кажется, распространенный вопрос среди международных разработчиков, но я пока не нашел прямого ответа.Я получаю из фида следующую строку: «Карлос и Карлос, большинство из них в Интернете»

В консоль возвращается следующая ошибка: UnicodeDecodeError: кодек «utf8» не может декодировать байтыв позиции 31-33: неверные данные

заранее спасибо,

fbr

1 Ответ

3 голосов
/ 15 февраля 2011

Вы не можете просто декодировать с использованием некоторой случайной кодировки, даже если это UTF-8;Вы должны декодировать, используя кодировку, возвращаемую в заголовках HTTP или эквиваленте в документе (например, в элементе META HTML).

Если кодировка недоступна илиневерно, тогда вы должны указать в операцию декодирования что произойдет с недопустимой последовательностью байтов;обычно для этого достаточно 'replace'.

>>> print u'Carlos e Carlos mostram o que há de melhor na internet'.encode('latin1').decode('utf-8', 'replace')
Carlos e Carlos mostram o que h�e melhor na internet
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...