들어가며
지난 포스팅에서 UnicodeEncodeError에 대해서 문제점과 해결방법에 대해서 포스팅을 했다. UnicodeEncodeError:'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 이 에러는 작기도 하지만... 어쩔때는 엄청 큰 문제야 정말..그렇다면, 애초에 unicode를 신경 쓰지 않고, 기본으로 utf-8로 설정 한다면, 매번 unicode를 unicode_str.encode('utf8')을 할 필요가 없다. 자 이제 그만 귀찮은 작업 하지말고, 근본적인 문제를 해결해보자.
문제점
파이썬 내장모듈인 locale을 import한 뒤에 getdefaultlocale()함수를 통해 현재 locale을 확인 할 수 있다. 아래 에러에서는 unkown locale:UTF-8이라고 ValueError의 에러가 발생하고 있다. 이 에러는 Linux shell에 LC_ALL, LANG이 설정이 안되서 생기는 문제이다.
해결 방법
~/.bash_profile의 마지막 줄에 아래와 같이 추가하고 적용해주면 된다.
$ vi ~/.bash_profile
$ export LC_ALL=en_US.UTF-8
$ export LANG=en_US.UTF-8$ source ~/.bash_profile
반영뒤에 파이썬에서 확인을 해주면 아래와 같이 UTF-8이 확인되는 것을 알 수 있다. 그럼 끝 이제는 encode('utf8')을 할 필요가 없이 print문으로 unicode 출력이 가능하다.
'Programming > Python' 카테고리의 다른 글
[Python] 파이썬 MySQL사용시 UnicodeEncodeError 해결 방법 (0) | 2016.03.31 |
---|---|
[Python] 파이썬 인코딩 문제 SyntaxError: Non-ASCII character (0) | 2016.03.26 |
[Python] Join, Split 리스트를 문자열로, 문자열을 리스트로 변환 (1) | 2016.03.23 |
[Python] MySQL 설치 및 쿼리 (접속/SELECT/INSERT/DELETE/UPDATE) (0) | 2016.03.23 |
[Python] UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) (2) | 2016.03.20 |