퍼센트 인코딩은 URL에 문자열을 표현하기 위한 문자 인코딩 방법으로 검색을 하거나 웹페이지 주소를 복사 붙여넣기 할 때 자주 볼 수 있는 모양입니다. 한글이나 한자 등 영어 외의 문자열 안전하게 전환하여 컴퓨터에 표현해 주기 위한 방법으로 영어권에서는 영어로 주소가 이뤄져 있어 자주 볼 수 있는 모양은 아니지만 한국인들이라면 뭔 말인지는 모르더라도 왠지 익숙한 표현 방법이죠.
엑셀이나 링크정리등의 업무를 처리하다보면 이러한 전환된 URL을 처리할 경우가 있는데요, 웹에서 간단하게 처리하실 분들을 위해 자바스크립트로 작성된 전환기를 제공합니다.
또, 파이썬에서 한글이 포함된 URL에서 발생할 수 있는 퍼센트 인코딩을 처리하는 방법에 대해 알아보겠습니다.
퍼센트 인코딩 웹 전환기
전환할 문자열을 입력하고 Encode나 Decode버튼을 눌러 인코딩 또는 디코딩 할 수 있습니다.
Encode : 문자열을 컴퓨터가 이해할 수 있는 형태로 전환
Decode : 인코딩 된 문자열을 사람이 이해할 수 있는 문자로 전환
결과:
파이썬으로 퍼센트 인코딩 다루기
파이썬으로 퍼센트 인코딩과 디코딩을 하려면 urllib.arse
모듈을 사용할 수 있는데요 사용방법은 아래와 같습니다.
퍼센트 인코딩
from urllib.parse import quote
original_string = "갑수야, 반갑수"
encoded_string = quote(original_string)
print("Original String:", original_string)
print("Encoded String:", encoded_string)
결과 :
Original String: 갑수야, 반갑수
Encoded String: %EA%B0%91%EC%88%98%EC%95%BC%2C+%EB%B0%98%EA%B0%91%EC%88%98
퍼센트 디코딩
from urllib.parse import unquote
encoded_string = "%EA%B0%91%EC%88%98%EC%95%BC%2C+%EB%B0%98%EA%B0%91%EC%88%98"
decoded_string = unquote(encoded_string)
print("Encoded String:", encoded_string)
print("Decoded String:", decoded_string)
결과 :
Encoded String: %EA%B0%91%EC%88%98%EC%95%BC%2C+%EB%B0%98%EA%B0%91%EC%88%98
Encoded String: 갑수야, 반갑수
위 방법 외에 requsets모듈을 사용하거나 urllib.parse.unquote_to_bytes함수를 사용할 수도 있습니다. 본인의 작업 환경에 맞춰 적절한 방법을 적용하시면 좋을 듯 해요.