BLOG main image
분류 전체보기 (313)
교육 (13)
NEIS (6)
Edufine (0)
Programmer (5)
Android Programming (1)
Internet W3 (18)
JAVA Programming (9)
JSP/Servlet (1)
Framework (7)
Spring For Beginner (4)
eGovFrame (10)
MEAN Stack (2)
NodeJS (5)
SublimeText (30)
SublimeText_Tips (18)
Eclipse (16)
JavaScript (8)
jQuery (12)
jQuery_tips (1)
Ajax (3)
DWR(Direct Web Remote) (4)
JSON(JS Object Notation) (4)
Oracle (2)
MySQL (28)
OS (16)
Download (3)
Life (10)
Favorit Site (1)
Books (2)
Healthy (1)
Stocks (1)
HTML5/CSS (1)
Python (4)
Security (7)
CISSP (0)
Ruby On Rails (5)
일기장 (0)
영어 교과서(중2) (3)
알고리즘 (0)
Go Lang (3)
VB 2010 (12)
C# (1)
정보보안기사(네트워크보안) (0)
업무 활용 엑셀 (11)
틈틈이 활용팁 (14)
하루 하루 살아가며 ……. (2)
기술 (1)
파이썬 & 데이터분석 (1)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2016. 1. 15. 15:17

이 포스팅은 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을 한다. 

site. py 파일 수정

Edit - Find를 눌러서 setencoding 함수 부분으로 이동한다.


05. encoding = "ascii"  #  Default value set by _PyUnicode_Init() 부분을 찾는다. 여기를 "ascii"  ->  "utf-8" 로 변경한다.

그 후, 저장을 한다. 

하지만 리눅스에서는 퍼미션 에러가 발생할 것이다. 왜냐하면 자신의 홈디렉토리의 파일이 아니라 관리자의 파일이기 때문이다. 

그래서 Linux 환경에서는 idle에서 하면 안된다. (window 사용자는 잘 됨.)


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의 인코딩을 설정해주면, 앞으로 다른 프로그램과의 호환 문제에 있어서 인식을 못하는 경우를 방지할 수 있다. 

문제가 발생해서 해결법을 찾는 것보다...미리 방지하는 것이 좋을 것 같다!!


출처 : http://blog.naver.com/PostView.nhn?blogId=onyourlife&logNo=150145622757

http://saelly.tistory.com/362




반응형

'Python' 카테고리의 다른 글

SublimeText 에서 Python 빌드하기  (0) 2016.04.08
Python 한글 출력 문제  (0) 2016.01.15
파이썬을 배우는 최고의 방법  (0) 2015.08.04