반응형
Prologue
과거에 파이썬 2에서는 유니코드 인식이 잘 되지 않아 한글 사용에 다양한 방법들이 필요했다. 하지만 파이썬3에서는 기본 인코딩이 utf-8로 채택이 되었고, 추가적인 설정 없이(?) 한글 사용이 편해졌다. plotting을 할 때는 글꼴을 바꿔서 추가적인 설정을 해주어야 하지만, 기본적으로 python상에서 한글을 사용하는데 큰 문제는 없다. 하지만, 보통 데이터 수집이나 웹통신을 하다 보면 한글이 있어야 할 자리에 흉악하게 생긴 것들을 볼 수 있다. 보통 한국어 관련 스크래핑을 하다 보면, 해당 주소의 url상에서 %EA%...
이렇게 수많은 %
가 포함된 생긴 것을 볼 수 있다. 그냥 해도 무방한데, 특히 데이터파일을 받을 때 파일명에 저러한 문자가 섞여있는 경우, 적지않은 짜증이 올라오는 경우가 생긴다.
Cause
웹 통신의 기본 규격은 utf-8이 아닐 수 있다. post로 통신하는 경우는 문제가 없지만, get으로 통신하는 경우 그러한 이유로 종종 문제아닌 문제(?)를 겪을 수 있다. 검색어조차 모를 때에는 euc-kr 등등 다른 인코딩으로 열심히 머리를 싸매고 맨땅에 헤딩을 할 수 있는데, 이러한 인코딩 방식은 다음과 같은 여러가지 이름으로 부른다.
UTF-8 3byte 16진수 코드, charset utf-8, percent incoding, URL incoding
How to
이는 통신상에서 url로 넘겨줄 때 발생하는 문제이기 때문에 관련 패키지인 urllib.parse.unquote_plus
를 사용하면 된다.
Example
from urllib import parse
temp = '대한민국'
# utf-8 to charset utf-8
url_incoding = parse.quote_plus(temp)
# charset utf-8 to utf-8
utf_incoding = parse.unquote_plus(url_incoding)
반응형
'Programing Language > Python' 카테고리의 다른 글
[plot]scatter legend: Automated legend creation (0) | 2020.04.16 |
---|---|
[plot] geopandas: geo.json plotting with matplotlib (0) | 2020.04.16 |
log scale fitting (0) | 2019.06.05 |
[PyPy] 설치 및 사용법 (0) | 2018.09.27 |
python(인터프리팅언어)와 C(컴파일언어) 비교 (0) | 2018.09.27 |