原文:关于URL转义字符(URL编码)的问题
昨天我打算上网找找最近出了什么新书,询问了一个朋友后他给了我一个奇怪的地址: %31%32%36%2E%61%6D/hEeGv4,把这一串貌似跟URL网址不搭边的字符串复制到浏览器地址栏后打开,结果可以正常打开淘宝的页面,那么这一串看似不像URL的地址是怎么回事呢?
通过搜索,我知道在因特网上传送URL时,URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫URL转义,实质上就是将包含非ASCII字符的URL转换为有效的ASCII字符格式。
在进行URL编码时,每一个非ASCII字符都被替换为“%hh”格式,其中hh为两位十六进制数,它对应于该字符在ISO-8859-1字符集里的编码值。比如“中国”这两个汉字出现在URL,就要将他们转为“%D6%D0%B9%FA”,由于一个汉字需要两个字节,所以“中国”被替换成了四个ASCII字符。
知道了URL转义字符是怎么回事,就可以了解上面那个地址了。我们对“%31%32%36%2E%61%6D/hEeGv4”进行反编码,得到“126.am/hEeGv4”,可以发现这是一个省略了“http://”的网址,并且对超长的淘宝链接进行了网址缩短,把它复制进浏览器地址栏,浏览器会识别出这个地址,并自动加上“http://”,所以我们就可以正常打开了。
我反编码URL时使用了这个网页:http://www.nengcha.com/code/urlDecode.asp。
另附上ASCII字符与URL编码的对照表。
ASCII字符 URL编码
空格 %20
! %21
” %22
# %23
$ %24
% %25
& %26
‘ %27
( %28
) %29
* %2A
+ %2B
, %2C
– %2D
. %2E
/ %2F
0 %30
1 %31
2 %32
3 %33
4 %34
5 %35
6 %36
7 %37
8 %38
9 %39
: %3A
; %3B
< %3C = %3D > %3E
? %3F
@ %40
A %41
B %42
C %43
D %44
E %45
F %46
G %47
H %48
I %49
J %4A
K %4B
L %4C
M %4D
N %4E
O %4F
P %50
Q %51
R %52
S %53
T %54
U %55
V %56
W %57
X %58
Y %59
Z %5A
[ %5B
\ %5C
] %5D
^ %5E
_ %5F
` %60
a %61
b %62
c %63
d %64
e %65
f %66
g %67
h %68
i %69
j %6A
k %6B
l %6C
m %6D
n %6E
o %6F
p %70
q %71
r %72
s %73
t %74
u %75
v %76
w %77
x %78
y %79
z %7A
{ %7B
| %7C
} %7D
~ %7E
%7F
€ %80
%81
‚ %82
ƒ %83
„ %84
… %85
† %86
‡ %87
ˆ %88
‰ %89
Š %8A
‹ %8B
Œ %8C
%8D
Ž %8E
%8F
%90
‘ %91
’ %92
“ %93
” %94
• %95
– %96
— %97
˜ %98
™ %99
š %9A
› %9B
œ %9C
%9D
ž %9E
Ÿ %9F
%A0
¡ %A1
¢ %A2
£ %A3
%A4
¥ %A5
| %A6
§ %A7
¨ %A8
© %A9
ª %AA
« %AB
¬ %AC
¯ %AD
® %AE
¯ %AF
° %B0
± %B1
² %B2
³ %B3
´ %B4
µ %B5
¶ %B6
· %B7
¸ %B8
¹ %B9
º %BA
» %BB
¼ %BC
½ %BD
¾ %BE
¿ %BF
À %C0
Á %C1
 %C2
à %C3
Ä %C4
Å %C5
Æ %C6
Ç %C7
È %C8
É %C9
Ê %CA
Ë %CB
Ì %CC
Í %CD
Î %CE
Ï %CF
Ð %D0
Ñ %D1
Ò %D2
Ó %D3
Ô %D4
Õ %D5
Ö %D6
%D7
Ø %D8
Ù %D9
Ú %DA
Û %DB
Ü %DC
Ý %DD
Þ %DE
ß %DF
à %E0
á %E1
â %E2
ã %E3
ä %E4
å %E5
æ %E6
ç %E7
è %E8
é %E9
ê %EA
ë %EB
ì %EC
í %ED
î %EE
ï %EF
ð %F0
ñ %F1
ò %F2
ó %F3
ô %F4
õ %F5
ö %F6
÷ %F7
ø %F8
ù %F9
ú %FA
û %FB
ü %FC
ý %FD
þ %FE
ÿ %FF
相关推荐
以下是关于URL转义字符的详细解释: 1. **基本URL转义字符**: - `%20`:空格,常被替换为`+`或`%20`。 - `%21`:感叹号 (`!`)。 - `%23`:井号 (`#`),用于标识页面内的锚点。 - `%24`:美元符号 (`$`)。 - `...
除了上述内容,还有关于URL编码的一些其他问题,例如编码后的URL是否会被浏览器自动解码、如何处理非ASCII字符等。了解和正确使用URL编码是编写健壮的JavaScript应用和网页的重要部分。正确编码URL能确保数据安全...
2. 转义字符:易语言需要识别哪些字符需要转义,并用特定的方式(通常是百分号加两位十六进制数)来表示这些字符。 3. 编码函数:编写或找到易语言的URLEncode函数,它接收一个字符串作为输入,然后返回编码后的URL...
在进行 URL 参数传递时,需要处理特殊字符的编码问题。因为有些符号在 URL 中是不能直接传递的,需要使用他们的编码。以下是常见的 URL 特殊符号及编码: 1. + 号表示空格,编码为 %2B 2. 空格,编码为 %20 3. / ...
比如在URL编码中,非字母数字字符会使用百分号(%)加上两位十六进制数来表示。这是因为URL不能包含某些字符,如空格或特殊符号,所以它们必须被转义。在JSON中,字符串必须用双引号包围,并且任何双引号或反斜杠在...
Delphi url 编码及转码及特殊字符串替换--百度和腾讯用的就是这个.mht
这涉及到转义字符以及URI编码的使用,对于正确传输和接收信息至关重要。 首先,我们需要理解什么是转义字符。在编程语言中,转义字符是一种特殊的字符序列,它以反斜杠(\)开头,随后跟着一个或多个字符。转义字符...
工具方面,有一些在线的URL编码解码工具可以帮助开发者快速处理URL中的特殊字符问题。此外,许多开发环境的集成开发工具(IDE)也集成了URL编码和解码的功能。 总的来说,理解并正确处理URL中的特殊字符是网络开发...
URL特殊字符处理方法 在URL中处理特殊字符是一个非常重要的知识点,特别是...URL特殊字符的处理方法是Web开发中一个非常重要的知识点,需要根据不同的情况选择合适的编码方法,以确保URL中的特殊字符可以正确地传递。
在这个例子中,我们使用alert()函数弹出转码后的结果,可以看到特殊字符"-"和"#"被转义成了它们的URL编码形式。 总结来说,当我们在使用JavaScript进行URL传值时,面对URL中的特殊字符,主要可以通过两种方法解决...
该函数接受一个`CString`类型的字符串作为输入,并返回经过URL编码后的Unicode字符串。 ```cpp CString Tool::urlEncode(CString s) { //...代码省略... } ``` ### 代码解读: 1. **初始化阶段**: - 函数首先...
解决办法将这些字符转化成服务器可以识别的字符,对应关系如下:URL字符转义 用其它字符替代吧,或用全角的。 + URL 中+号表示空格 + 空格 URL中的空格可以用+号或者编码 / 分隔目录和子目录 / ? 分隔实际的...
首先,我们来理解URL编码的基本原理。URL编码遵循的是UTF-8标准,并使用百分号(%)进行编码。在URL中,除了字母、数字、减号(-)、下划线(_)、点(.)和斜线(/)之外的其他字符都需要进行转码。每个字符被转换...
这包括对URL中的特殊字符进行转义编码,避免由于特殊字符带来的解析问题。在实际开发过程中,通常会使用现成的库函数或浏览器提供的编码工具函数来完成这项工作,例如JavaScript内置的`encodeURIComponent`和`...
本文将深入探讨如何使用JavaScript(简称JS)来解码这些URL编码,使其转换回原本的中文或其他非英文字符。 ### URL编码与解码原理 URL编码的主要目的是确保URL中的所有字符都能在网络上传输,避免因特殊字符导致的...
在IT行业中,URL编码与解码是网络编程中不可或缺的一部分,尤其在处理包含特殊字符的网址时显得尤为重要。淘宝作为中国最大的电商平台,其URL中可能包含各种参数,这些参数需要进行正确的编码和解码以确保数据传输的...
总结,对于在JavaScript中通过表单提交URL参数包含特殊字符(如"+")的问题,可以通过以上两种方法来解决。第一种方法是通过动态创建表单元素并在其中对参数进行编码后提交,适用于不支持HTML5 formaction属性的旧版...