한 번 써 보면 또 묻고 싶어진다
도구 한 번 써 본 사람끼리 모이면 비슷한 질문이 오간다. 한 번 정리해 두면 다음에 다시 헷갈리는 일이 줄어든다.
Q1. 한글이 왜 %로 길어져?
한글 한 글자는 UTF-8에서 3바이트. 각 바이트가 %XX 형태로 인코딩되어 한 글자가 9자리(예: %ED%95%9C). 길어 보이지만 정상.
Q2. 이모지도 인코딩되나?
네. 이모지는 4바이트 유니코드. 인코딩 시 %F0%9F%98%80 같은 형태. 디코딩하면 다시 이모지로 표시.
Q3. URL에 따옴표 넣을 수 있나?
일반 따옴표(", ')는 안전 문자. 인코딩 없이 사용 가능하지만, 안전 측면에서 인코딩 권장. ' → %27, " → %22.
Q4. 인코딩 두 번 하면?
이중 인코딩 발생. % 자체가 다시 %25로 변환. 받는 쪽에서 한 번만 디코딩하면 깨진 결과. 인코딩은 한 번만. URL 인코더로 결과 확인 후 추가 인코딩 신중.
Q5. 디코딩이 안 될 때는?
인코딩 형식이 잘못됐거나 일부 문자가 손상된 경우. % 다음에 16진수 두 자리가 와야 하는데 다른 문자가 오면 오류.
Q6. 일본어·중국어도 처리되나?
모든 유니코드 문자 처리 가능. 일본어·중국어도 UTF-8 다중 바이트로 인코딩. 도구가 유니코드 호환이면 자유 처리.
Q7. punycode와 다른 거야?
punycode는 도메인 이름의 비ASCII 문자 인코딩 표준(예: xn--로 시작). URL 경로·쿼리는 퍼센트 인코딩. 자리가 다르다.
Q8. 결과 길이 제한 있어?
도구는 보통 제한 없음. 다만 브라우저는 URL 전체 길이 제한(약 2000자). 너무 긴 데이터는 POST 본문으로 전송 권장. URL 디코더로 받은 URL 길이 확인 가능.
마무리
URL 인코딩 관련 질문은 한두 번 짚으면 다음부터 헷갈리지 않는다. 자주 나오는 질문 위주로 정리해 두면 작업이 부드러워진다.