유틸리티

URL 인코딩 디코딩이란, 한글 URL 깨짐 해결하는 법

공유한 링크를 메신저에서 열었더니 페이지를 찾을 수 없다고 뜬다. 주소에 한글이 포함돼 있으면 전송 과정에서 깨지는 경우가 있다. URL에서 허용되지 않는 문자가 인코딩 없이 들어가면 서버가 주소를 제대로 해석하지 못하기 때문이다.

URL 인코딩이 필요한 이유

URL에는 영문, 숫자, 일부 특수문자만 허용된다. 한글, 공백, 특수기호(&, =, ? 등)를 URL에 포함하려면 퍼센트 인코딩(%XX 형태)으로 변환해야 한다. 예를 들어 "안녕"은 UTF-8 기준으로 %EC%95%88%EB%85%95이 된다.

원본인코딩 결과
안녕%EC%95%88%EB%85%95
공백( )%20 또는 +
&%26
=%3D

인코딩 vs 디코딩

인코딩(Encoding)
사람이 읽을 수 있는 텍스트를 URL에서 안전한 형식(%XX)으로 변환. API 요청에 한글 파라미터를 넣을 때 필요하다.
디코딩(Decoding)
%XX 형태의 문자열을 원래 텍스트로 복원. 로그에 찍힌 인코딩된 URL을 읽을 때 필요하다.

바로 변환하려면

JavaScript에서 encodeURIComponent() 함수를 쓰면 되지만, 빠르게 확인만 하고 싶을 때는 URL 인코딩 변환 도구가 편하다. 텍스트를 붙여넣으면 인코딩, 디코딩 결과가 실시간으로 나온다. 입출력 크기 통계도 표시되니 인코딩 후 URL 길이가 얼마나 늘어나는지도 확인할 수 있다.

TIP 한글 URL이 깨져서 공유가 안 될 때는, URL 전체를 인코딩하지 말고 한글 부분만 인코딩해야 한다. 슬래시(/)나 프로토콜(https://)까지 인코딩하면 URL 자체가 작동하지 않는다.

URL 인코딩은 웹 개발에서 기본이지만, 한 번에 바로 변환할 수 있는 도구를 알아두면 디버깅 시간이 줄어든다.