티스토리 뷰

      




파이썬에서 문자열 입출력을 처리하다 보면 가끔 에러가 발생할 때가 있습니다.

작성된 코드나 문자열에 특이점이 없다고 생각되면 문자열 중간에 라틴어라던지

프랑스어 등 성조표기가 된 것이 없는지 봐야 합니다.

저는 파일에서 문자열을 불러들일 때 Café 라는 단어가 포함되어 있는 줄 모르고

도대체 왜 UnicodeEncodeError가 발생하는 건지 멘붕에 빠진적이 있었네요.


"McCafé is a coffee-house-style food and drink chain"이라는 문자열을

 출력하는 코드를 비교해 보겠습니다.


# -*- coding: utf-8 -*-
text = u"McCafé is a coffee-house-style food and drink chain, owned by McDonald's"
print text


일반적인 코드이나 이 경우에는 아래와 같은 에러가 발생합니다.



é문자 때문에 발생하는 경우인데요. 이럴 때는 아래와 같이 코드를 구성하시면 

매칭되는 ASCII 문자로 자동 변환시켜 줍니다.


# -*- coding: utf-8 -*-
from unidecode import unidecode
text = u"McCafé is a coffee-house-style food and drink chain, owned by McDonald's"
print unidecode(text)


실행화면은 다음과 같습니다.







unidecode 함수를 사용하기 위해서는 관련 패키지를 설치해야 하는데요.

PIP패키지가 설치되어 있다면 다음 명령어로 간단하게 설치 가능합니다.


pip install unidecode


설치화면



unidecode 함수의 재미있는 점은 한글 문자열에 적용하면 발음되는 대로 출력됩니다ㅎㅎ


# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
from unidecode import unidecode
text = u"가 / 나 / 다 / 라 / 마 / 바"
print unidecode(text)


실행화면 입니다. "가" → "ga" 이렇게 표시됩니다 : ) 


 

 




 



홍보배너링크
댓글
최근에 올라온 글
최근에 달린 댓글