2017-02-11 15 views
0

Я очищаю данные с веб-страницы с помощью BeautifulSoup. Для тестирования я выводю все на консоль. Там все прекрасно работает. Теперь я хочу, чтобы записать данные в файл, но получаю следующую ошибку после того, как некоторое время:Python: проблема кодирования символов

UnicodeEncodeError: 'latin-1' codec can't encode character '\u0107' in position 57: ordinal not in range(256)

Вопрос, кажется, это письмо: ć

Я использую этот код для записи в файл:

with open('data.txt', 'a',encoding='iso-8859-1') as f: 
    f.write(text+'\n') 

Если изменить кодирование кода на encoding='utf-8' исключение исчезает, однако специальные символы в письменном написано файл выглядит неправильно: KuzmanoviÄ ‡ должен быть Кузманович

+0

Я предполагаю, что проблема была в том, что файлы, которые я хочу сохранить, не имеют правильной кодировки. Я создал новые файлы с utf-8, и теперь он работает. ответит, когда я уверен. – beta

+0

Если вы сохраните файл как «utf-8», вы должны сообщить инструменту, который открывает этот файл, использовать UTF-8 или установить его как UTF-8 в качестве значения по умолчанию, если это возможно. –

ответ

0

Мой вопрос заключается в том, что файлы я хотел сохранить данные не имеют правильную кодировку. Я создал новые файлы с utf-8, и тогда он работал.

Изначально я должен был убедиться, что создаваемые файлы - это UTF-8.

0

Вы можете использовать codecs писать текст с Юникода:

import codecs 
with codecs.open("data.txt", "a", encoding="utf-8") as f: 
    f.write(text + "\n") 

 Смежные вопросы

  • Нет связанных вопросов^_^