رمزنگاری درصدی URL

URL تنها از طریق مجموعه کاراکتر ASCII از بستر اینترنت قابل ارسال است. از آنجا که URL معمولا حاوی کاراکترهایی خارج از مجموعه کاراکتر ASCII می باشد این کاراکترها باید به قالب ASCII تبدیل شوند.

رمزنگاری URL کاراکترهایی را که در مجموعه کاراکتر ASCII قرار ندارند را با علامت “%” به همراه کد دو رقمی هگزادسیمال آنها جایگزین می کند.

URL نباید حاوی حرف فاصله باشند. به همین جهت رمزنگاری URL حرف فاصله را با علا مت “+” یا “%20” جایگزین می کند.

توابع رمزنگاری URL

در جاوااسکریپت و PHP توابعی وجود دارند که می توان از آنها برای رمزنگاری URL استفاده نمود.

در جاوا اسکریپت تابع encodeURI() برای رمزنگاری URL استفاده می شود.

در PHP تابع rawurlencode() این وظیفه را بر عهده دارد.

نکته:در جاوا اسکریپت حرف فاصله به “%20” تبدیل می شود.

جدول رمزنگاری ASCII

مرورگرها ورودی ها و آدرس های موجود در صفحه را به حالت استاندارد URL رمزنگاری می کنند.

در جدول زیر فهرست کاراکترهای دو مجموعه کاراکتر Windows-1252 و UTF-8 و کد معادل آنها در ASCII آمده است.

کاراکتراز Windows-1252از UTF-8
space%20%20
!%21%21
%22%22
#%23%23
$%24%24
%%25%25
&%26%26
%27%27
(%28%28
)%29%29
*%2A%2A
+%2B%2B
,%2C%2C
%2D%2D
.%2E%2E
/%2F%2F
0%30%30
1%31%31
2%32%32
3%33%33
4%34%34
5%35%35
6%36%36
7%37%37
8%38%38
9%39%39
:%3A%3A
;%3B%3B
<%3C%3C
=%3D%3D
>%3E%3E
?%3F%3F
@%40%40
A%41%41
B%42%42
C%43%43
D%44%44
E%45%45
F%46%46
G%47%47
H%48%48
I%49%49
J%4A%4A
K%4B%4B
L%4C%4C
M%4D%4D
N%4E%4E
O%4F%4F
P%50%50
Q%51%51
R%52%52
S%53%53
T%54%54
U%55%55
V%56%56
W%57%57
X%58%58
Y%59%59
Z%5A%5A
[%5B%5B
\%5C%5C
]%5D%5D
^%5E%5E
_%5F%5F
`%60%60
a%61%61
b%62%62
c%63%63
d%64%64
e%65%65
f%66%66
g%67%67
h%68%68
i%69%69
j%6A%6A
k%6B%6B
l%6C%6C
m%6D%6D
n%6E%6E
o%6F%6F
p%70%70
q%71%71
r%72%72
s%73%73
t%74%74
u%75%75
v%76%76
w%77%77
x%78%78
y%79%79
z%7A%7A
{%7B%7B
|%7C%7C
}%7D%7D
~%7E%7E
%7F%7F
`%80%E2%82%AC
%81%81
%82%E2%80%9A
ƒ%83%C6%92
%84%E2%80%9E
%85%E2%80%A6
%86%E2%80%A0
%87%E2%80%A1
ˆ%88%CB%86
%89%E2%80%B0
Š%8A%C5%A0
%8B%E2%80%B9
Œ%8C%C5%92
%8D%C5%8D
Ž%8E%C5%BD
%8F%8F
%90%C2%90
%91%E2%80%98
%92%E2%80%99
%93%E2%80%9C
%94%E2%80%9D
%95%E2%80%A2
%96%E2%80%93
%97%E2%80%94
˜%98%CB%9C
%99%E2%84
š%9A%C5%A1
%9B%E2%80
œ%9C%C5%93
%9D%9D
ž%9E%C5%BE
Ÿ%9F%C5%B8
%A0%C2%A0
¡%A1%C2%A1
¢%A2%C2%A2
£%A3%C2%A3
¤%A4%C2%A4
¥%A5%C2%A5
¦%A6%C2%A6
§%A7%C2%A7
¨%A8%C2%A8
©%A9%C2%A9
ª%AA%C2%AA
«%AB%C2%AB
¬%AC%C2%AC
­%AD%C2%AD
®%AE%C2%AE
¯%AF%C2%AF
°%B0%C2%B0
±%B1%C2%B1
²%B2%C2%B2
³%B3%C2%B3
´%B4%C2%B4
µ%B5%C2%B5
%B6%C2%B6
·%B7%C2%B7
¸%B8%C2%B8
¹%B9%C2%B9
º%BA%C2%BA
»%BB%C2%BB
¼%BC%C2%BC
½%BD%C2%BD
¾%BE%C2%BE
¿%BF%C2%BF
À%C0%C3%80
Á%C1%C3%81
Â%C2%C3%82
Ã%C3%C3%83
Ä%C4%C3%84
Å%C5%C3%85
Æ%C6%C3%86
Ç%C7%C3%87
È%C8%C3%88
É%C9%C3%89
Ê%CA%C3%8A
Ë%CB%C3%8B
Ì%CC%C3%8C
Í%CD%C3%8D
Î%CE%C3%8E
Ï%CF%C3%8F
Ð%D0%C3%90
Ñ%D1%C3%91
Ò%D2%C3%92
Ó%D3%C3%93
Ô%D4%C3%94
Õ%D5%C3%95
Ö%D6%C3%96
×%D7%C3%97
Ø%D8%C3%98
Ù%D9%C3%99
Ú%DA%C3%9A
Û%DB%C3%9B
Ü%DC%C3%9C
Ý%DD%C3%9D
Þ%DE%C3%9E
ß%DF%C3%9F
à%E0%C3%A0
á%E1%C3%A1
â%E2%C3%A2
ã%E3%C3%A3
ä%E4%C3%A4
å%E5%C3%A5
æ%E6%C3%A6
ç%E7%C3%A7
è%E8%C3%A8
é%E9%C3%A9
ê%EA%C3%AA
ë%EB%C3%AB
ì%EC%C3%AC
í%ED%C3%AD
î%EE%C3%AE
ï%EF%C3%AF
ð%F0%C3%B0
ñ%F1%C3%B1
ò%F2%C3%B2
ó%F3%C3%B3
ô%F4%C3%B4
õ%F5%C3%B5
ö%F6%C3%B6
÷%F7%C3%B7
ø%F8%C3%B8
ù%F9%C3%B9
ú%FA%C3%BA
û%FB%C3%BB
ü%FC%C3%BC
ý%FD%C3%BD
þ%FE%C3%BE
ÿ%FF%C3%BF
ا%D8%A7
ب%D8%A8
پ%D9%BE
ت%D8%AA
ث%D8%AB
ج%D8%AC
چ%DA%86
ح%D8%AD
خ%D8%AE
د%D8%AF
ذ%D8%B0
ر%D8%B1
ز%D8%B2
ژ%DA%98
س%D8%B3
ش%D8%B4
ص%D8%B5
ض%D8%B6
ط%D8%B7
ظ%D8%B8
ع%D8%B9
غ%D8%BA
ف%D9%81
ق%D9%82
ک%DA%A9
گ%DA%AF
ل%D9%84
م%D9%85
ن%D9%86
و%D9%88
ه%D9%87
ی%DB%8C

کاراکترهای کنترلی اسکی از %00 تا %1F به صورت خاص برای کنترل دستگاه های سخت افزاری طراحی شده اند. این کدها داخل URL کار خاصی انجام نمی دهند.

در زیر فهرست کاراکترهای کنترلی آمده است.

کاراکتر ASCIIتوضیحاترمزنگاری URL
NULکاراکتر به معنی پوچ%00
SOHشروع سربرگ%01
STXشروع متن%02
ETXانتهای متن%03
EOTپایان انتقال%04
ENQپرس و جو%05
ACKتایید%06
BELصدای زنگ%07
BSبرگشت%08
HTبرگه افقی%09
LFتغذیه خط%0A
VTبرگه عمودی%0B
FFتغذیه فرم%0C
CRبازگشت محموله%0D
SOجابجایی به خارج%0E
SIجابجایی داخل%0F
DLEرها نمودن پیوند داده ها%10
DC1کنترل دستگاه شماره 1%11
DC2کنترل دستگاه شماره 2%12
DC3کنترل دستگاه شماره 3%13
DC4کنترل دستگاه شماره 4%14
NAKتأیید منفی%15
SYNهمگام سازی%16
ETBپایان انتقال بسته%17
CANلغو%18
EMپایان واسط%19
SUBجایگزین%1A
ESCرها کردن%1B
FSجدا کننده فایل%1C
GSجدا کننده گروه%1D
RSجدا کننده ثبت شده ها%1E
USجدا کننده واحد%1F