ISO-8859-1 인코딩을 사용하여 UTF-8로 인코딩 된 파일 (예 : OS의 기본 인코딩이기 때문에)을 여는 것처럼 보입니다. 당신이 바이트로 열고 첫 번째 줄을 읽는다면
,이 같은 내용을 볼 수있을 것이다 \xef\xbb\xbf
는 BOM의 UTF-8 인코딩입니다
>>> next(open('pi_million_digits.txt', 'rb'))
b'\xef\xbb\xbf3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679\n'
....
>>> next(open('pi_million_digits.txt', encoding='utf-8'))
'\ufeff3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679\n'
제거하려면 : UTF-8
>>> next(open('pi_million_digits.txt', encoding='iso-8859-1'))
'3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679\n'
... 개방이 실제 BOM 문자 U + FEFF을 보여줍니다 ISO-8859-1로 개설, 그것은 당신이 얻고있는 것 같습니다
>>> next(open('pi_million_digits.txt', encoding='utf-8-sig'))
'3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679\n'
예에서 next()
의 사용은 위의 단지 데모 목적입니다 : 밖으로 마크, 특별한 인코딩 utf-8-sig
를 사용합니다. 코드에서 open()
행에 encoding
인수를 추가하기 만하면됩니다 (예 :
with open(filename, encoding='utf-8-sig') as file_object:
# ... etc.
파일이 손상되었을 수 있습니다. –
텍스트 편집기에서 파일을 보았습니다. 정상적으로 보입니까? 그것은 텍스트 편집기에서 괜찮아 보여도 여전히 손상되었을 수 있습니까? – Bazman