본문 바로가기
인터넷/모바일/머신러닝

python3 한글 처리.

by blade. 2017. 9. 12.

python은 멀티바이트 문자처리가 짜증나게 되어있는듯..

가장 많이 쓰이는 python2, python3의 한글 처리 방법이 다름.


먼저 알아두어야할 것.

python2, python3의 문자열 처리 방법이 다름.

python2은 ascii가 기본

python3은 unicode가 기본

LINUX와 윈도우의 한글 처리 방법이 다름.

윈도우는 CP949가 기본

LINUX는 euc-kr이 기본. (.profile에 명기하기 나름이지만, 보통 euc-kr)

웹 세상에서는 utf-8이 기본.



python3 한글 처리.


1
2
3
4
5
6
import sys
reload(sys)
sys.setdefaultencoding('euc-kr'# 또는 sys.setdefaultencoding('utf-8')
= "한글"
print( a )
printlen( a ) )
cs




덤으로...

vi에서 UTF-8 한글이 깨지면 .vimrc에 아래 문장 추가.


1
2
set fileencodings=utf-8,cp949
set encoding=utf-8
cs



유닉스 쪽에서는 아래와 같은 방법이 제일 나은듯..


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ echo $LANG
en_US.utf8
$ echo $LC_ALL 
C
$ python -"print (u'voil\u00e0')"
Traceback (most recent call last):
  File "<string>", line 1in <module>
UnicodeEncodeError: 'ascii' codec can not encode character u'\xe0' in position 4: ordinal not in range(128)
$ export LC_ALL='en_US.utf8' # success
export LC_ALL=ko_KR.utf8
:ko:en_US.utf8:en’ # 실패 중….
$ python -"print (u'voil\u00e0')"
voila
$ unset LC_ALL
$ python -"print (u'voil\u00e0')"
voila
 
cs