URL转义

Posted herizai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL转义相关的知识,希望对你有一定的参考价值。

转自:http://blog.csdn.net/sunhuwh/article/details/41809909

URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫URL转义,实质上就是将包含非ASCII字符的URL转换为有效的ASCII字符格式。

在进行URL编码时,每一个非ASCII字符都被替换为“%hh”格式,其中hh为两位十六进制数,它对应于该字符在ISO-8859-1字符集里的编码值。比如“中国”这两个汉字出现在URL,就要将他们转为“%D6%D0%B9%FA”,由于一个汉字需要两个字节,所以“中国”被替换成了四个ASCII字符。

public static void main(String[] args) throws UnsupportedEncodingException{
        String s = "zhaoxiaofnag%40eims.com.cn ";
        s=URLDecoder.decode(s,"utf-8");
        System.out.println(s);
        
        String china = "%31%32%36%2E%61%6D/hEeGv4";
        china = URLDecoder.decode(china,"utf-8");
        System.out.println(china);
    }
另附上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
a    %AA
?    %AB
?   %AC
ˉ    %AD
?   %AE
ˉ    %AF
°    %B0
±   %B1
2    %B2
3    %B3
′     %B4
μ    %B5
?    %B6
·     %B7
?     %B8
1    %B9
o    %BA
?    %BB
?   %BC
?   %BD
?   %BE
?    %BF
à    %C0
á    %C1
?    %C2
?    %C3
?    %C4
?    %C5
?   %C6
?    %C7
è    %C8
é    %C9
ê    %CA
?    %CB
ì    %CC
í    %CD
?    %CE
?    %CF
D   %D0
?    %D1
ò   %D2
ó   %D3
?   %D4
?   %D5
?   %D6
%D7
?   %D8
ù    %D9
ú    %DA
?    %DB
ü    %DC
Y    %DD
T    %DE
?    %DF
à    %E0
á    %E1
a    %E2
?    %E3
?    %E4
?    %E5
?   %E6
?    %E7
è    %E8
é    %E9
ê    %EA
?    %EB
ì     %EC
í     %ED
?     %EE
?     %EF
e    %F0
?    %F1
ò    %F2
ó    %F3
?    %F4
?    %F5
?    %F6
÷   %F7
?    %F8
ù    %F9
ú    %FA
?    %FB
ü    %FC
y    %FD
t    %FE
?    %FF

 

以上是关于URL转义的主要内容,如果未能解决你的问题,请参考以下文章

使用 sqlite 的 FTS 片段函数处理 html 转义

VSCode自定义代码片段3——url大全

VSCode自定义代码片段3——url大全

VSCode自定义代码片段3——url大全

jquery 冒号转义 为啥双斜杠

Vscode在使用变量之前转义斜杠