URL에 한글을 넣으면 %ED%95%9C%EA%B8%80 같은 이상한 문자로 바뀐다. 주소창에서 복사해서 메모장에 붙여넣으면 깨져 보인다. 이게 바로 URL 인코딩이다. URL 인코더를 사용하면 이런 문자열을 쉽게 변환하거나 원래대로 복원할 수 있다.
URL 인코딩이란
인터넷 주소(URL)에는 영문 알파벳, 숫자, 일부 특수문자만 사용할 수 있다. 한글, 공백, 특수문자가 포함되면 문제가 생긴다. 그래서 이런 문자들을 퍼센트(%) 기호와 16진수 코드로 변환하는 것이 URL 인코딩이다. 예를 들어 공백은 %20, 한글 "가"는 %EA%B0%80으로 변환된다.
사용 방법
clickfor.kr/url-encoder에 인코딩하고 싶은 텍스트를 입력한다. 인코딩 버튼을 누르면 URL에 사용할 수 있는 형태로 변환된다. 한글 검색어, 파일명, 특수문자가 포함된 텍스트를 URL 파라미터로 전달할 때 필요하다.
디코딩 (복원)
반대로 %로 시작하는 인코딩된 문자열을 원래 텍스트로 복원할 수도 있다. 웹사이트 주소에서 복사한 긴 문자열이 뭔지 확인하고 싶을 때 사용한다. 인코딩된 문자열을 붙여넣고 디코딩 버튼을 누르면 한글이 제대로 표시된다.
자주 쓰이는 인코딩 코드
알아두면 유용한 코드들이 있다. %20은 공백이다. %2F는 슬래시(/), %3A는 콜론(:), %3D는 등호(=), %26은 앰퍼샌드(&)다. URL에서 특별한 의미를 가진 문자들이라 인코딩해서 사용한다.
활용 사례
API를 호출할 때 검색어나 사용자 입력을 파라미터로 전달하려면 인코딩이 필수다. 파일명에 한글이나 특수문자가 있을 때 다운로드 링크를 만들려면 인코딩해야 한다. SNS에 링크를 공유할 때 한글이 깨지는 문제도 인코딩으로 해결할 수 있다.
인코딩 방식
URL 인코딩에도 몇 가지 방식이 있다. UTF-8 기반이 표준이지만 오래된 시스템에서는 EUC-KR을 쓰기도 한다. 같은 한글이라도 인코딩 방식에 따라 결과가 다르다. 대부분의 현대 웹사이트는 UTF-8을 사용한다.
프로그래밍에서 인코딩
자바스크립트에서는 encodeURIComponent() 함수로 인코딩, decodeURIComponent() 함수로 디코딩한다. 파이썬에서는 urllib.parse 모듈을 쓴다. 대부분의 프로그래밍 언어에 URL 인코딩 함수가 내장되어 있다.
주의사항
이미 인코딩된 문자열을 다시 인코딩하면 이중 인코딩이 되어 문제가 생긴다. %가 %25로 바뀌어서 복원이 안 될 수 있다. 인코딩/디코딩 상태를 정확히 파악하고 필요한 경우에만 변환해야 한다.