본문 바로가기

언어/javascript

javascript : 인코딩과 디코딩 함수

반응형
함수 이름 설명
escape() 적절한 정도로 인코딩 합니다.
unescape(() 적절한 정도로 디코딩 합니다.
encodeURI(uri) 최소한의 문자만 인코딩합니다.
decodeURI(encodedURI) 최소한의 문자만 디코딩합니다.
encodeURIComponent(uriComponent) 문자 대부분을 모두 인코딩합니다.
decodeURIComponent(encodedURI) 문자 대부분을 모두 디코딩합니다.

 

그런데 적절한과 최소한, 대부분의 차이는 무엇인가.

 

이는 다음과 같이 정리할 수 있습니다.

 

  • escape()
    • 영문 알파벳과 숫자, 일부 특수 문자(@,*,-,_,+,../)를 제외하고 모두 인코딩합니다.
    • 1바이트 문자는 %XX의 형태로, 2바이트 문자는 %uXXXX 형태로 변환합니다.
  • encodeURI()
    • escape() 함수에서 인터넷 주소에 사용되는 일부 특수 문자(: , ;, /, =, ?, &)는 변환하지 않습니다.
  • encodeURIComponent()
    • 알파벳과 숫자를 제외한 모든 문자를 인코딩합니다.
    • UTF-8 인코딩과 같습니다.

 

var URI = 'http://redbin.co.kr?test=한글입니다';

var output = '';

output += '★escape()\n';
output += escape(URI) + '\n\n';
output += '★encodeURI()\n';
output += encodeURI(URI) + '\n\n';
output += '★encodeURIComponent()\n';
output += encodeURIComponent(URI) + '\n\n';

console.log(output);
★escape()
http%3A//redbin.co.kr%3Ftest%3D%uD55C%uAE00%uC785%uB2C8%uB2E4

★encodeURI()
http://redbin.co.kr?test=%ED%95%9C%EA%B8%80%EC%9E%85%EB%8B%88%EB%8B%A4

★encodeURIComponent()
http%3A%2F%2Fredbin.co.kr%3Ftest%3D%ED%95%9C%EA%B8%80%EC%9E%85%EB%8B%88%EB%8B%A4
반응형

'언어 > javascript' 카테고리의 다른 글

javascript : 숫자 확인 함수  (0) 2020.11.29
javascript : eval  (0) 2020.11.29
javascript : 타이머 함수  (0) 2020.11.29
javascript : 클로저  (0) 2020.11.29
javascript : callback 함수  (0) 2020.11.29