[Javascript] URI 인코딩 및 디코딩하기(Javascript URL % 인코딩 처리)

업데이트(2021.03.26): 옥텟(octet) 관련 설명 추가

웹페이지에서 URL에 사용되는 문자열을 encode하고 decode 해보자.


환경 및 선수조건

  • Javascript


Percent-encoding

  • Percent-encoding이란 URI 혹은 URL에 문자를 표현하는 인코딩 방식으로 RFC 3986에 따라서 알파벳이나 숫자 등 몇몇 문자를 제외한 문자들에 대해서 옥텟(octet) 값으로 묶어서 16진수 값으로 코딩하는 방식
  • 옥텟(octet): 컴퓨팅에서 8개의 비트가 한데 모인 것을 의미하며 보통 1바이트를 의미한다.

  • 예시: "/internet url" -> "internet%20url"


encodeURI()와 decodeURI() 함수

  • encodeURI(): 일반 문자열을 퍼센트 인코딩된 문자열로 변환
  • decodeURI(): 인코딩된 문자열을 일반 문자열로 변환

var uri = "my test.asp?name=ståle&car=saab";
var enc = encodeURI(uri);
var dec = decodeURI(enc);

console.log(enc); //"my%20test.asp?name=st%C3%A5le&car=saab"
console.log(dec); //"my test.asp?name=ståle&car=saab"


참고자료