Programming/Python

[Python] 유니코드, UTF-8를 해결하는 방법 (Unicode, UTF8)

쌍쌍바나나 2016. 3. 20. 15:31
반응형

들어가며

  지난 포스팅에서 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 출력이 가능하다. 





반응형