언제 쓰나
URL 의 쿼리스트링에 한글·공백·특수문자를 끼워야 할 때. 또는
서버 로그에서 본 %E3%81%82%E3%81%84 같은 문자열을 사람이 읽는 형태로
풀어볼 때.
componentURI vs uri
두 가지 인코딩 범위가 있습니다.
- componentURI —
encodeURIComponent와 같습니다.: / ? # & =같은 reserved 문자도 이스케이프합니다. 쿼리 값·경로 조각·POST 본문용. - uri —
encodeURI와 같습니다. reserved 문자는 그대로 두고 공백· 비-ASCII 만 이스케이프합니다. 전체 URL 문자열을 재정렬하지 않을 때.
대부분의 경우 componentURI 를 쓰면 됩니다. URL 한 줄을 통째로 인코딩하고 싶을 때만 uri 모드.
디코딩
%xx 시퀀스가 아닌 잘못된 입력이 섞이면 디코딩이 실패합니다. 이때는
오류 메시지가 나오고, 어디서 문제가 났는지 직접 확인할 수 있도록 입력
원문을 그대로 두고 표시만 멈춥니다.
쿼리 안 토큰 · 키 안전
encodeURIComponent · encodeURI 두 범위 모두 stdlib 직접 호출. 한글 · 이모지 · 인증 토큰을 포함한 URL 모두 페이지 안에서만 처리됩니다.