이것은 특정한 질문이 아니라 일반적인 질문입니다 : 다른 플랫폼에서 파이썬이 유니 코드를 처리하는 방법에 차이점이 있습니까?다른 플랫폼에서 파이썬이 유니 코드를 처리하는 방법에 차이점이 있습니까?
파이썬 3을 사용하여 텍스트 파일을 읽습니다. 다음 코드는 파일을 열고 첫 번째 행을 건너 뜁니다.
fin = open(filename, 'rt')
next(fin)
Linux 컴퓨터와 Mac에서 동일한 코드를 실행합니다. 동일한 environment.yml
파일을 사용하여 만든 conda 환경을 사용합니다. 또한 두 컴퓨터에서 동일한 Python 버전을 사용하고 있음을 확인했습니다 (Python 3.6.3 :: Anaconda, Inc.). 데이터 파일은 동일한 Git 저장소에서 가져옵니다. 어떤 이유로 Linux 버전에서 예외가 발생합니다.
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 139: ordinal not in range(128)
것들 확인 : 만약 당신이 좋아하면, 그래서 그냥,이 작업을 수행 할 수 있습니다 당신이 정말로 파이썬 3, 무엇을 사용하고 있는지 않습니다 ['locale.getpreferredencoding'(거짓)] (HTTPS : //docs.python .org/3/library/functions.html # open)은 실패한 플랫폼에서 제공합니다. "텍스트 모드에서 * encoding *을 지정하지 않으면 사용되는 인코딩은 플랫폼에 따라 다릅니다. 현재 로캘 인코딩을 얻으려면'locale.getpreferredencoding (False)'가 호출됩니다." 데이터 파일을 제어하는 것처럼 보이기 때문에 사용할 인코딩을 선택하고 파일을 열 때이를 명시 적으로 'open()'에 전달하십시오. –
'명시 적 암시 적보다 낫다 '. 텍스트 파일을 다룰 때 좋은 BKM은 항상'open'에서 인코딩을 지정합니다. –