C#两种实现方法——
1、string s = System.Web.HttpUtility(byte[] data);
这里的s即为转换出来的URL编码,需要注意的是这里的byte数组必须是具有ASCII意义的数组,由string通过System.Text.Encoding.Default.getBytes(str.ToCharArray());是不正确的,不能正确转义!
2、根据URL编码规则写个小程序
private string UrlEncode(byte[] byt)
{
string desstr = "";
for(int i=0; i<byt.Length;i++)
{
desstr += "%";
desstr += byt[i].ToString("X2");
}
return desstr;
}
以下是URL编码对照表:
backspace %08
tab %09
linefeed %0A
creturn %0D
space %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
¢ %A2
£ %A3
¥ %A5
| %A6
§ %A7
? %AB
? %AC
ˉ %AD
o %B0
± %B1
a %B2
, %B4
μ %B5
? %BB
? %BC
? %BD
? %BF
A` %C0
A′ %C1
A^ %C2
A~ %C3
A¨ %C4
A° %C5
? %C6
C? %C7
E` %C8
E′ %C9
E^ %CA
E¨ %CB
I` %CC
I′ %CD
I^ %CE
I¨ %CF
D %D0
N~ %D1
O` %D2
O′ %D3
O^ %D4
O~ %D5
O¨ %D6
? %D8
U` %D9
U′ %DA
U^ %DB
U¨ %DC
Y′ %DD
T %DE
? %DF
a` %E0
a′ %E1
a^ %E2
a~ %E3
a¨ %E4
a° %E5
? %E6
c? %E7
e` %E8
e′ %E9
e^ %EA
e¨ %EB
i` %EC
i′ %ED
i^ %EE
i¨ %EF
e %F0
n~ %F1
o` %F2
o′ %F3
o^ %F4
o~ %F5
o¨ %F6
÷ %F7
? %F8
u` %F9
u′ %FA
u^ %FB
u¨ %FC
y′ %FD
t %FE
y¨ %FF
摘自: