반응형

URL 인코딩으로 알려진 인코딩의 공식 명칭은 Percent-encoding이다.

URL (Uniform Resource Locator)뿐만 아니라 URN (Uniform Resource Name)도 포함하는

URI (Uniform Resource Identifier)에서 사용하는 인코딩이다.

URI에 허용되는 문자는 크게 reserved와 unreserved로 나뉜다.

 

$("#sns_url").keyup(function(event){
            if (!(event.keyCode >=37 && event.keyCode<=40)) {
                var inputVal = $(this).val();
                $(this).val(inputVal.replace(/[^a-z0-9!*();:@&=+$%,./?#_]/gi,''));
            }
        });

 

 

reserved 문자는 다음과 같다.

! * ' ( ) ; : @ & = + $ , / ? # [ ]

unreserved 문자는 다음과 같다.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 - _ . ~

reserved와 unreserved에 해당하지 않는다면,

모두 Percent-encoding되어야 한다.

reserved 문자는 특별한 의미를 갖는데

특별한 의미없이 사용하려면, Percent-encoding되어야 한다.

Percent-encoding은 ASCII인 경우 ASCII 값의 16진수 표현 앞에 %를 붙인다.

non-ASCII인 경우 인코딩에 따라 각 바이트를 16진수 표현으로 바꾸고 앞에 %를 붙인다.

다음은 각 reserved 문자의 Percent-encoding 값이다.

! # $ & ' ( ) * + , / : ; = ? @ [ ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D

unreserved 문자의 경우 인코딩될 필요도 없고,

인코딩하더라도 자기 자신이 반환된다.

마찬가지로 unreserved 문자를 디코딩하더라도 자기 자신이 반환된다.

Reference:
http://en.wikipedia.org/wiki/Percent-encoding

반응형

+ Recent posts