하얀설표 블로그




예제)한글 url을 url 인코딩하는 방법(How to urlencode a querystring in Python)





( 수정됨)


파이썬에서 url 쿼리문자열을 url 인코딩하는 방법

파이썬 내장모듈인 urllib을 import해 parse.quote() 명령을 실행하면 된다.

from urllib import parse
string = '한글 abc 예시'
print(parse.quote(string))
>> %ED%95%9C%EA%B8%80%20abc%20%EC%98%88%EC%8B%9C

디코딩하는 방법

인코딩하는 명령이 parse.quote()였기 때문에, 반대의 작업을 하는 명령어는 parse.unquote()이다.

from urllib import parse
string = '한글 abc 예시'
string_encode = parse.quote(string)
print(string_encode)
print(parse.unquote(string_encode))
>> %ED%95%9C%EA%B8%80%20abc%20%EC%98%88%EC%8B%9C
한글 abc 예시

공백 문자를 플러스(+)로 치환하고 싶다면?

네이버나 구글의 경우 검색어 중간에 공백 문자(스페이스)가 포함되어있다면 %20이 아닌 + 기호를 사용한다.
이처럼 공백 문자를 +로 표현하고 싶다면 parse.quote_plus() 명령을 사용하면 된다.
반대로 %20 대신 + 기호를 사용한 인코딩된 url 쿼리문자열을 변환할 때 + 기호를 없애고 싶다면 parse.unquote_plus() 명령을 사용하면 된다.

참고로 + 기호는 url 인코딩시 "%2Bb%2B"으로 변환되기 때문에 문자열에 포함된 + 기호에는 영향을 주지 않는다.

from urllib import parse
string = '한글 a+b+c 예시'
string_encode = parse.quote_plus(string)
print(string_encode)
print(parse.unquote(string_encode))
print(parse.unquote_plus(string_encode))

>> %ED%95%9C%EA%B8%80+a%2Bb%2Bc+%EC%98%88%EC%8B%9C
한글+a+b+c+예시
한글 a+b+c 예시


공감 : 0







white.seolpyo.com