URL이 깨지는 이유
주소나 쿼리 문자열에는 영문·숫자와 일부 기호만 안전하게 들어갈 수 있습니다. 공백, 한글, &, =, ?, # 같은 문자는 따로 의미가 있거나 허용되지 않아, 브라우저가 %로 시작하는 코드(퍼센트 인코딩)로 바꿔 전송합니다. 링크를 손으로 만들거나 API 요청 주소를 조립할 때 이 도구로 미리 변환해 두면 깨지지 않습니다.
인코드 vs 디코드
- 인코드: 원문을 안전한 형태로.
hello world→hello%20world, 한글 → UTF-8 퍼센트 바이트 - 디코드: 인코딩된 문자열을 원문으로 복원. 로그나 주소창에서
%EA%B0%80같은 코드를 만났을 때 무슨 글자인지 확인할 때 씁니다.
자주 하는 실수
- 전체 URL을 통째로 인코딩:
https://의:·/까지 바뀌어 주소가 망가집니다. 인코딩은 값(파라미터) 부분에만 적용하세요. - 두 번 인코딩: 이미 인코딩된 문자열을 또 인코딩하면
%가%25로 바뀝니다. 깨졌다면 한 번 디코드해 보세요.
브라우저의 encodeURIComponent / decodeURIComponent를 사용하며, 입력값은 서버로 전송되지 않습니다. 이진 데이터 인코딩은 용도가 다른 Base64 도구를 참고하세요.