Я хотел бы прочитать файл, содержащий французские символы в Python, такие как «é». Я использую эти строки кода для этого:
import codecs
with codecs.open(r'C:\Users\chsafouane\Desktop\saf.txt', encoding='ascii') as f:
for line in f.readlines():
line
Тем не менее, я получаю
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 3: ordinal not in range(128)
Чтобы воспроизвести ошибку, файл, который я пытаюсь прочитать, содержит только одно слово: «Accélération». Есть ли способ добиться этого?
Возможный дубликат Чтение специальных символов из файла .txt в Python
Если файл был создан в Windows, encoding='latin1' может работать лучше, чем encoding='utf-8', для получения правильных символов.
@sciroccorics Да, кодировка latin1 работает хорошо. Спасибо!






Для сообщения, содержащего только это слово "Accélération", кодировка utf-8 не работает и возвращает следующую ошибку
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 3: invalid continuation byte
Как предлагает @sciroccorics, кодировка latin-1 работает хорошо и возвращает правильное слово. Итак, фрагмент кода, который работает, выглядит следующим образом:
import codecs
with codecs.open(r'C:\Users\chsafouane\Desktop\saf.txt', encoding='latin1') as f:
for line in f.readlines():
print(line)
encoding='utf-8'?