URL-Maskierung

Im .NET-Framework gibt es gleich mehrere Methoden, die Strings so maskieren, daß sie sicher in URLs verwendet werden können:

Worin unterscheiden sich diese Methoden?

HttpServerUtility.UrlEncode und HttpServerUtility.UrlPathEncode verwenden die gleichnamigen Methoden der HttpUtility-Klasse und benutzen Response.ContentEncoding als Codierung.

Nicht-ASCII-Zeichen werden von allen hier erwähnten Methoden %HH-maskiert, standardmäßig mit UTF-8. Unterschiede ergeben sich also ausschließlich bei ASCII-Zeichen (U+0000 bis U+007F); diese Unterschiede sind in der Tabelle hervorgehoben.

Die nicht druckbaren Zeichen U+0000 bis U+001F werden von HttpUtility.UrlPathEncode nicht angefaßt, von den anderen %HH-maskiert.

HttpUtility.UrlEncode entspricht ungefähr dem application/x-www-form-urlencoded-Inhaltstyp.

Zeichen Uri.EscapeUriString Uri.EscapeDataString HttpUtility.UrlEncode HttpUtility.UrlPathEncode
U+0020 %20 %20 + %20
! U+0021 ! ! ! !
" U+0022 %22 %22 %22 "
# U+0023 # %23 %23 #
$ U+0024 $ %24 %24 $
% U+0025 %25 %25 %25 %
& U+0026 & %26 %26 &
' U+0027 ' ' ' '
( U+0028 ( ( ( (
) U+0029 ) ) ) )
* U+002A * * * *
+ U+002B + %2B %2B +
, U+002C , %2C %2C ,
- U+002D - - - -
. U+002E . . . .
/ U+002F / %2F %2F /
0 U+0030 0 0 0 0
1 U+0031 1 1 1 1
2 U+0032 2 2 2 2
3 U+0033 3 3 3 3
4 U+0034 4 4 4 4
5 U+0035 5 5 5 5
6 U+0036 6 6 6 6
7 U+0037 7 7 7 7
8 U+0038 8 8 8 8
9 U+0039 9 9 9 9
: U+003A : %3A %3A :
; U+003B ; %3B %3B ;
< U+003C %3C %3C %3C <
= U+003D = %3D %3D =
> U+003E %3E %3E %3E >
? U+003F ? %3F %3F ?
@ U+0040 @ %40 %40 @
A U+0041 A A A A
B U+0042 B B B B
C U+0043 C C C C
D U+0044 D D D D
E U+0045 E E E E
F U+0046 F F F F
G U+0047 G G G G
H U+0048 H H H H
I U+0049 I I I I
J U+004A J J J J
K U+004B K K K K
L U+004C L L L L
M U+004D M M M M
N U+004E N N N N
O U+004F O O O O
P U+0050 P P P P
Q U+0051 Q Q Q Q
R U+0052 R R R R
S U+0053 S S S S
T U+0054 T T T T
U U+0055 U U U U
V U+0056 V V V V
W U+0057 W W W W
X U+0058 X X X X
Y U+0059 Y Y Y Y
Z U+005A Z Z Z Z
[ U+005B %5B %5B %5B [
\ U+005C %5C %5C %5C \
] U+005D %5D %5D %5D ]
^ U+005E %5E %5E %5E ^
_ U+005F _ _ _ _
` U+0060 %60 %60 %60 `
a U+0061 A A A A
b U+0062 B B B B
c U+0063 C C C C
d U+0064 D D D D
e U+0065 E E E E
f U+0066 F F F F
g U+0067 G G G G
h U+0068 H H H H
i U+0069 I I I I
j U+006A J J J J
k U+006B K K K K
l U+006C L L L L
m U+006D M M M M
n U+006E N N N N
o U+006F O O O O
p U+0070 P P P P
q U+0071 Q Q Q Q
r U+0072 R R R R
s U+0073 S S S S
t U+0074 T T T T
u U+0075 U U U U
v U+0076 V V V V
w U+0077 W W W W
x U+0078 X X X X
y U+0079 Y Y Y Y
z U+007A Z Z Z Z
{ U+007B %7B %7B %7B {
| U+007C %7C %7C %7C |
} U+007D %7D %7D %7D }
~ U+007E ~ ~ %7E ~
 U+007F %7F %7F %7F