Programming/Python

[Python] UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

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

들어가며

  파이썬으로 구현을 하다보면 한번씩은 겪는 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
파이썬은 기본적으로 unicode를 사용한다. 그렇기 때문에 한글을 사용하기 위해서는  unicode를 utf-8로 변환해서만 사용할 수 있다.  변경하는 방법은 아주 간단하다. unicode를 utf8로 encoding을 해주면 문제를 해결할 수 있다. 

문제점

  예를 들어서 웹페이지에서 한글 텍스트를 입력받은 값을 website.text라고 가정하자. 아래 내용은 website.text를 print문으로 출력했을때 UnicodeEncodeError가 발생한다. python 내장함수인 type으로 website.site의 형태를 보면  unicode임을 알 수 있다. 


해결 방법

unicode인 website.text를 'utf8'로 encode하면 text의 type은 unicode에서 str으로 변환이 되고, 출력을 제대로 할 수 있다. 


반응형