일전에 자바스크립트에서 URL 인코딩 관련 내용을 포스팅한 적이 있습니다. 

http://jamesdreaming.tistory.com/2

(위 URL 참조)


언급하지 않은 내용중 escape() 함수가 있습니다. 


실질적으로 많이 쓰는 인코딩 및 디코딩 함수는 아래와 같습니다. 


   escape(URI)

   unescape(escapedURI)


   encodeURI(URI)

   decodeURI(encodedURI)


   encodeURIComponent(URI)

   decodeURIComponent(encodeURI)



각각의 함수는 인코딩하는 정도의 차이가 있는데요. 

그 차이점은 아래과 같습니다. 


escape(URI)

- 영문 알파벳과 숫자, 일부 특수 문자(@, *, -, _, +, / 등등)을 제외하고 모두 인코딩

- 1바이트 문자 -> %XX 형식으로 변환

- 2바이트 문자 -> %uXXXX 형식으로 변환


encodeURI(URI)

- 인터넷 주소에 사용되는 일부 특수 문자(:, ;, /, =, ?, &)는 변환하지 않음 


encodeURIComponent(URI)

- 알파벳과 숫자를 제외한 모든 문자를 인코딩 

- UTF-8 인코딩과 동일



결과는 다르지만 인코딩이라는 동일한 역할을 하는 함수들인데요, 

현재는 encodeURIComponent(URI) 함수를 가장 많이 사용하고 있습니다. 


escape 같은 경우에는 + 기호를 인코딩 하지 않기 때문에 약간의 문제가 발생하고 있습니다. 

그래서 최근엔 운영 환경에서 escape 를 사용하지 않습니다. 





블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,