Латинские буквы с острым: DjangoUnicodeDecodeError - PullRequest
1 голос
/ 31 августа 2009

У меня проблема с чтением txt-файла для вставки в таблицу mysql db, т. Е. Фрагмент кода:

Файл

содержит первую строку: " aclaración "

archivo = open ('file.txt', "r")
для строки в archivo.readlines ():
.... тело = тело + линия
модель = MyModel (тело = тело)
model.save ()

Я получаю DjangoUnicodeDecodeError:

Кодек utf8 не может декодировать байты в позиции 8: недопустимые данные. Вы перешли в 'aclaraci \ xf3n' (введите 'str') Подсказка об ошибке Unicode

Строка, которая не может быть закодирована / декодирована, была: araci n.

Я пытался выполнить body.decode ('utf-8'), body.decode ('latin-1'), body.decode ('iso-8859-1') без решения.

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

1 Ответ

5 голосов
/ 31 августа 2009

Судя по коду \xf3 для 'ó', похоже, что данные закодированы в ISO-8859-1 (или некотором близком родственнике). Таким образом, body.decode('iso-8859-1') должно быть допустимой строкой Unicode (вы не указываете, что означает «без решения» - какое сообщение об ошибке вы получаете и где?); если вместо этого вам нужна строка в кодировке utf-8, body.decode('iso-8859-1').encode('utf-8') должен дать вам одну!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...