링크를 공유했는데 한글 부분이 %ED%95%9C%EA%B5%AD 같은 문자로 바뀌어 있다. 깨진 게 아니라 인코딩된 것이다. 하지만 원래 어떤 텍스트였는지 알아보려면 디코딩이 필요하다.
URL 인코딩이 뭔가
URL에는 영문, 숫자, 일부 특수문자만 들어갈 수 있다. 한글이나 공백 같은 문자는 브라우저가 자동으로 퍼센트(%) 기호와 16진수 조합으로 바꿔서 전송한다. 이 과정이 URL 인코딩이다.
예시
원본:https://example.com/검색?q=서울 날씨
인코딩 후:https://example.com/%EA%B2%80%EC%83%89?q=%EC%84%9C%EC%9A%B8%20%EB%82%A0%EC%94%A8
인코딩·디코딩이 필요한 상황
- API 파라미터 전달 — 검색어에 한글이나 특수문자가 포함될 때 인코딩하지 않으면 서버가 값을 잘못 해석한다.
- 공유 링크 원본 확인 — 받은 URL이 인코딩되어 있어서 내용을 알 수 없을 때 디코딩으로 원본을 확인한다.
- 리다이렉트 URL 디버깅 — 리다이렉트 경로에 포함된 인코딩 값을 풀어야 어디로 이동하는지 파악할 수 있다.
- 마케팅 UTM 파라미터 — 캠페인 이름에 한글이 들어가면 인코딩된 상태로 전달된다.
URL 인코딩·디코딩 방법
URL 인코딩 변환기에 텍스트를 넣고 인코딩 또는 디코딩 버튼을 누르면 변환 결과가 바로 나온다. encodeURIComponent 옵션을 켜면 슬래시(/)나 물음표(?) 같은 문자까지 전부 인코딩해준다.
- 인코딩 모드에서 한글 URL이나 파라미터를 입력한다.
- 변환 결과를 복사해서 코드나 링크에 사용한다.
- 디코딩이 필요하면 모드를 전환하고 인코딩된 문자열을 넣으면 원본이 나타난다.
한글 URL이 깨져 보일 때 당황할 필요 없다. 디코딩 한 번이면 원본을 바로 확인할 수 있다.