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 | |