Python URL Encode, Decode 하는 방법
Python에서 문자열을 URL Encode 및 Decode 하는 방법을 알려드리도록 하겠습니다.
URL Encode / URL Decode
from urllib import parse
string_original = "안녕하세요 :)"
string_encoded = parse.quote(string_original)
string_decoded = parse.unquote(string_encoded)
print("기존 문자열 : ", string_original)
print("Encoded 문자열 : ", string_encoded)
print("Decoded 문자열 : ", string_decoded)
# Output
# 기존 문자열 : 안녕하세요 :)
# Encoded 문자열 : %EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94%20%3A%29
# Decoded 문자열 : 안녕하세요 :)
urllib.parse.quote() 를 사용하여 URL Encode를 할 수 있고,
URL Encode 되어있는 문자열을 urllib.parse.unquote() 를 사용하여 URL Decode 할 수 있습니다.
urllib.parse.quote() / urllib.parse.unquote() Parameter
from urllib import parse
string_original = "안녕하세요 :)"
string_encoded = parse.quote(string_original, safe=":)", encoding="cp949")
string_decoded = parse.unquote(string_encoded, encoding="cp949")
print("기존 문자열 : ", string_original)
print("Encoded 문자열 : ", string_encoded)
print("Decoded 문자열 : ", string_decoded)
# Output
# 기존 문자열 : 안녕하세요 :)
# Encoded 문자열 : %BE%C8%B3%E7%C7%CF%BC%BC%BF%E4%20:)
# Decoded 문자열 : 안녕하세요 :)
urllib.parse.quote() 에 존재하는 Parameter 에는 string, safe, encoding, errors,
urllib.parse.unquote() 에 존재하는 Parameter 에는 string, encoding, errors 가 있습니다.
safe 는 인코딩 하지 않을 값을 입력합니다. default 값은 "/" 입니다.
예제에서 safe에 ":)"을 입력하여 해당 문자들이 인코딩되지 않은 것을 확인하실 수 있습니다.
encoding 은 인코딩 방식을 입력합니다. default 값은 "utf-8" 입니다.
예제에서 encoding에 "cp949"를 입력하여 "cp949" 방식으로 인코딩 된것을 확인하실 수 있습니다.
errors 는 에러를 발생시키는 방법을 입력합니다.
urllib.parse.quote() 의 default 값은 "strict", urllib.parse.unquote() 의 default 값은 "replace" 입니다.
이상으로 Python에서 URL Encode 및 Decode 하는 방법에대한 설명을 마치도록 하겠습니다.
도움이 되셨다면 공감, 댓글 부탁드립니다!
궁금하신 점이나 요청사항은 언제든지 말씀해주세요!
피드백도 언제나 환영입니다!
감사합니다.
댓글