Python IDLE 한글 설정
이 포스팅은 Python 2.7.3 의 환경에서 진행되었다.
01. 한글 설정이 필요한 이유?
Python의 기본 인코딩 형식은 'ASCII' 형식이다.
그래서 다른 프로그램과의 호환을 위해서 인코딩을 'UTF-8' 로 변경해야한다.
※ EUC-KR 은 유닉스의 한글 완성형이고, CP949는 EUC-KR 을 확장하여 더 많은 글자를 포함한 윈도우 계열의 형식이다. 따라서 완성형 한글을 쓰는 경우에는 호환성을 위해 CP-949를 사용한다.
하지만 국제화 규격을 생각하여 이들보다는 UTF-8 을 쓰는 것이 좋다.
변경이유는, 문자를 변환하는 형식이 달라 한글 인식을 못하거나 깨짐 현상이 발생할 수 있기 때문이다. UTF-8은 유니코드이기 대문에 대부분의 프로그램에서 동일한 byte로 문자를 인식한다. 그래서 문제를 줄일 수 있다.
02. Python에게 한글 인식 적용시키기. (윈도우도 동일하다. 단지, 경로만 틀릴 뿐이다.(window의 경우 c:\Python27\Lib)
파이썬 idle을 열고 open을 한다
03. /usr/lib/python2.7로 간다. 리눅스에서는 여기가 자신의 파이썬 경로이다. 그 후, site.py 파일을 찾아 열기를 한다.
04. Edit - Find를 눌러서 setencoding 함수 부분으로 이동한다.
05. encoding = "ascii" # Default value set by _PyUnicode_Init() 부분을 찾는다. 여기를 "ascii" -> "utf-8" 로 변경한다.
그 후, 저장을 한다.
하지만 리눅스에서는 퍼미션 에러가 발생할 것이다. 왜냐하면 자신의 홈디렉토리의 파일이 아니라 관리자의 파일이기 때문이다.
그래서 Linux 환경에서는 idle에서 하면 안된다. (window 사용자는 잘 됨.)
06. 저장에 실패하였기 때문에, 다른 방법을 찾아야 한다.
터미널을 열어서 site.py 파일이 있는 곳으로 이동한다. cd /urs/lib/python2.7/
그 후, 관리자의 권한으로 열어야하므로 sudo vi site.py 로 파일을 연다.
07. /setencoding 으로 해당 함수가 있는 곳으로 이동한다.
08. encoding = "ascii"가 보인다. "utf-8"로 변경한다. 그 후 wq로 저장하고 빠져나온다.
윈도우 사용자는 encoding 부분을 cp949로 해줘야 한다. utf-8로 하면 에러발생.
09. 마지막으로 출력 방식을 한 번 더 셋팅해줘야 한다.
해당 디렉토리의 idlelib 디렉토리로 이동한다. cd idlelib
이동해서 목록을 살펴보면 PyShell.py 파일이 보일것이다. 이 파일을 연다.
10. /def readline 으로 해당 함수를 찾아서 이동한다.
11. 해당 함수의 맨 밑의 return line 을 찾아서 str(line) 으로 바꾸어준다.
12. python에서 한글이 잘 표현되는 것을 볼 수 있다.
이렇게 미리 Python의 인코딩을 설정해주면, 앞으로 다른 프로그램과의 호환 문제에 있어서 인식을 못하는 경우를 방지할 수 있다.
문제가 발생해서 해결법을 찾는 것보다...미리 방지하는 것이 좋을 것 같다!!