Как я могу обработать неправильно закодированный символ с Python 2?

Файл HTML, который я получаю, содержит некоторые символы, которые не поддерживаются кодировкой, указанной в заголовке HTML:

Я обнаружил, что следующие не поддерживаются кодировкой Shift_JIS, но фактически используются. Мой браузер может правильно отображать эти символы.

  • ∑ n-арное суммирование U + 2211
  • ゚ половина ширины катакана полуголосый звук марки U + FF9F
  • Д кириллическая заглавная буква де U+414

Когда я пытаюсь прочитать этот HTML-файл и декодировать для обработки, я получаю UnicodeDecodeError.

url = 'http://matsucon.net/material/dic/kao09.html'
response = urllib2.urlopen(url)
response.read().decode('shift_jis_2004')

Любой хороший способ обработать HTML, который содержит неправильно закодированные символы, без получения ошибки?

1 ответ

Решение

Попробуй это:

response.read().decode('shift_jis_2004',errors='ignore')
Другие вопросы по тегам