OVERCODE

javascript 유니코드변환함수 escape(), encodeURI(), encodeURIComponent() 비교 본문

HTML/CSS/JS

javascript 유니코드변환함수 escape(), encodeURI(), encodeURIComponent() 비교

오버코드 2017. 3. 12. 05:06

escape()

deprecated. 더이상 사용을 권장하지 않음.


escape 메서드는 [인수]의 내용을 포함하는 문자열 값을 유니코드 형식으로 반환합니다.

모든 공백, 문장 부호,  악센트 부호가 있는 문자 및 기타 비 ASCII문자를 %xx 으로 대체합니다.

여기서 xx는 문자를 나타내는 16진수 숫자입니다.

예를 들어, 공백은 "%20"으로 반환 됩니다.


예외문자 : @*/+


디코딩 : unescape()


escape('~!@#$%^&*(){}[]=:/,;?+\'"\\')
// 반환값 : %7E%21@%23%24%25%5E%26*%28%29%7B%7D%5B%5D%3D%3A/%2C%3B%3F+%27%22%5C


encodeURI()

URL을 인코딩 할 때 이것을 사용해야 하며, URL 에서 허용되지 않는 심볼을 인코딩합니다.


encodeURI 메서드는 인코딩 된 URI를 반환합니다.

":", "/", ";"및 "?"과 같은 문자를 인코딩하지 않습니다.

encodeURIComponent 는 이러한 문자를 인코딩 할 때 사용 합니다.


예외문자 : ~!@#$&*()=:/,;?+'


디코딩: decodeURI()


encodeURI('~!@#$%^&*(){}[]=:/,;?+\'"\\')
// 반환값 : ~!@#$%25%5E&*()%7B%7D%5B%5D=:/,;?+'%22%5C


encodeURIComponent()

URL의 매개 변수를 인코딩 할 때 사용해야 하며, 전체 URL을 인코딩 할 때 사용할 수도 있습니다.

그러나 다시 사용하려면 해독해야합니다.


encodeURIComponent 메서드는 인코딩 된 URI를 반환합니다.

모든 문자를 인코딩하므로 문자열이 /folder1/folder2/default.html과 같은 경로를 나타내는 경우주의해야합니다.

슬래시 문자는 인코딩되며 요청으로 웹 서버에 전송 된 경우 유효하지 않습니다.

문자열에 단일 URI 구성 요소가 둘 이상 포함되어있는 경우 encodeURI 메서드를 사용합니다.


예외문자 : ~!*()'


디코딩 : decodeURIComponent()


encodeURIComponent('~!@#$%^&*(){}[]=:/,;?+\'"\\')
// 반환값 : ~!%40%23%24%25%5E%26*()%7B%7D%5B%5D%3D%3A%2F%2C%3B%3F%2B'%22%5C




Char  encUrI  encURIComp  escape
*     *       *           *
.     .       .           .
_     _       _           _
-     -       -           -
~     ~       ~           %7E
'     '       '           %27
!     !       !           %21
(     (       (           %28
)     )       )           %29
/     /       %2F         /
+     +       %2B         +
@     @       %40         @
?     ?       %3F         %3F
=     =       %3D         %3D
:     :       %3A         %3A
#     #       %23         %23
;     ;       %3B         %3B
,     ,       %2C         %2C
$     $       %24         %24
&     &       %26         %26
      %20     %20         %20
%     %25     %25         %25
^     %5E     %5E         %5E
[     %5B     %5B         %5B
]     %5D     %5D         %5D
{     %7B     %7B         %7B
}     %7D     %7D         %7D
<     %3C     %3C         %3C
>     %3E     %3E         %3E
"     %22     %22         %22
\     %5C     %5C         %5C
|     %7C     %7C         %7C
`     %60     %60         %60

참고

http://xkr.us/articles/javascript/encode-compare/

http://stackoverflow.com/questions/14317861/difference-between-escape-encodeuri-encodeuricomponent


Comments