Вопрос заключается в том, что файл закодирован в одном формате, но вы открывающийся файл в другом формате. Скорее всего, файл utf-8
, но вы открываете в каком-то формате ANSI (я видел аналогичную проблему в блокноте ++, когда я изменил кодировку с UTF-8 на ANSI, для £Latitude£
). Пример, чтобы показать такое же поведение -
Моих a.txt
-
£Latitude£
код -
>>> f = open('a.txt','r')
>>> s = f.read()
>>> s
'\xc2£Latitude\xc2£'
>>> f = open('a.txt','r',encoding='utf-8')
>>> s = f.read()
>>> s
'£Latitude£'
Вам нужно открыть файл в правильной кодировке, пропускание кодировки в качестве аргумента в open()
, как сделано выше.
От documentation of open()
-
кодирования это имя кодировки, используемой для декодирования или кодирования файла. Это следует использовать только в текстовом режиме. Кодировка по умолчанию зависит от платформы (независимо от того, возвращается locale.getpreferredencoding()), но можно использовать любую кодировку, поддерживаемую Python. См. Модуль кодеков для списка поддерживаемых кодировок.
не может воспроизвести, разместить содержимое этого файла. –
Не могли бы вы объяснить 'где файл £ foo £'? –