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 문자를 디코딩하더라도 자기 자신이 반환된다.
'프로그래밍 > Web' 카테고리의 다른 글
[SNS] facebook에 url공유를 했는데, 자꾸 이전정보가 나온다면? (0) | 2013.09.13 |
---|---|
[CSS] file 첨부 스타일 변경하기 (0) | 2013.09.13 |
@ [cookbook] Github + Trello 연동하기 (0) | 2013.09.10 |
[PHP] PHPMD: Find issues in your PHP code (0) | 2013.09.09 |
ASP 인코딩 (0) | 2013.09.05 |