오늘은 자바스크립트의 인코딩 함수에 관하여 얘기해볼까 합니다.

! 인코딩(Encoding)이란?
인코딩은 텍스트를 전송하기 위해 변환하며 문자를 ASCII 문자로 바꾸어 주는 것(아스크문자로 변환)을 말합니다. 변환하는 이유는 문자 타입이 서로 다르다면 수신받는 곳에서 잘못 해석될 수도 있으니 공통된 문자로 바꾸어 줄 필요가 있겠죠? 그래서 인코딩 후 전송하게 됩니다.

자바스크립트는 인코딩 함수로 아래의 세 가지가 있습니다.

1. escape();
2. encodeURI();
3. encodeURIComponent;


! 인코딩 함수 상세보기


아래서 부터는 각각의 함수의 기능 및 특징입니다.

1. escape()


특수문자를 인코딩하되 흔히 사용되는 문자와, 숫자, 일부 특수 문자( *, @, -, _, +, ., /)는 제외하여 유니코드 형태로 인코딩을 수행합니다.
* 숫자를 넣으면 문자타입으로 변환되어 반환됨. Ex)... escape(123) -> "123" 
* 축소된 함수(Deprecated)로서 아래 함수들을 사용할 것을 권장합니다.


2. encodeURI()


인터넷 주소에 쓰이는 특수문자는 인코딩하지 않습니다. ( / ? & ; = )

3. encodeURIComponent()


인터넷 주소에 쓰이는 특수문자도 함께 인코딩합니다. ( / ? & ; = )
참고로 슬래쉬도 인코딩하기 주소창에 인코딩시에는 주의해야 합니다.


! 그럼, 인코딩을 했으면 디코딩도 해주어야겠죠? 디코딩 함수는 아래와 같습니다.
i. unescape()
ii. decodeURI()
iii. decodeURICompoonent()