보통 인코딩을 모르는 미지의 파일을 파이썬의 open()함수를 통하여 열 시에 위와같은 오류가 종종 발생한다.

 

그 이유는 파이썬은 utf-8이 기본 인코딩인데, utf-8로 해당 문서를 열려고 했더니 문제가 발생했다는 것이다.

 

이때는 open()함수의 encoding 파라미터를 통하여 인코딩 방식을 다른 방법으로 지정해 주면 파일이 열린다.

 

보통 윈도우에서 작성하거나 웹에서 긁어온 문서는 'euc-kr' 혹은 'cp949'로 대부분 해결이 된다.

 

가끔 해외에서 작성된 문서의 경우 'latin_1'인코딩도 종종 보인다.

 

즉, open("file.name", "r", encoding='euc-kr')의 식이다.

 

그러나 저 두가지 인코딩을 사용하였는데도 제대로 작동이 안되는 경우에는 인터넷에서 직접 인코딩 방식을 찾아 보아야 한다.

 

파일 인코딩 알아보기

 

파일 인코딩 확인법(How to find out file encoding)

GNU 시스템 하에서는 해당 폴더로 이동한 후에 file * 혹은 file --mime-encoding * 을 명령줄에 쳐주면 인코딩 방식이 나온다. 윈도우에서는 git bash를 깔면 gnu시스템을 이용할 수 있으므로 위와같이 해주면 되..

omnil.tistory.com

 

그런데 이 방식을 활용하여도, 인코딩은 저렇게 해놓고, 실제 내부에서 인코딩된 문서가 쓰인 방식이 다를 수 있다.

(가령 저 인코딩 방식으로 파일이 열리는데도 그 안에서도 파일이 깨져보이는 경우)

 

그때는... 답 없이 경험에 의지해서 여러 인코딩 방식을 시험해보는 수밖에 없다.

그것이 바로 위에서 말했던 latin_1, euc-kr, cp949등 이다.

 

더욱 많은 인코딩 방식은 파이썬의 공식 도큐멘테이션에 2/3 지점에 나와있다.

만일 해당 국가가 한국이 아니라 중국, 대만, 일본 등이면 그에 맞는 인코딩 방식을 하나하나 시험해보는 수 밖에 없다.

GNU 시스템 하에서는 해당 폴더로 이동한 후에

file *

혹은

file --mime-encoding *

을 명령줄에 쳐주면 인코딩 방식이 나온다.

 

윈도우에서는 git bash를 깔면 gnu시스템을 이용할 수 있으므로 위와같이 해주면 되고, 완전 naive한 윈도우즈라면, 사실 파일을 윈도우 내장 메모장으로 열어서 재저장할때 인코딩 방식을 볼 수 있다.

'Study > Computer' 카테고리의 다른 글

CLI? GUI? 그게 뭐죠? 먹는건가요...?  (0) 2019.07.10
[Git/Github] Git? 깃?  (0) 2019.07.08

+ Recent posts