2017-10-16 3 views
-2

mit Ich brauche Zeichenfolge wie folgt unter Verwendung von Standard-Libs zu kodieren: "{some-string.for#encode}" auf "%7bsome%2dstring%2efor%23encode%7d"Wie kodieren String .net Libs

HttpUtility.UrlDecode("{some-string.for#encode}") 

nicht wie erwartet funktioniert und Rückkehr:

"% 7bsome-string.for% 23encode% 7d"

+3

gut: * warum * brauchen Sie diese anderen Zeichen codiert? Dinge wie '-' und' .' sind * nicht * reserviert, daher sollte es nicht nötig sein, sie zu% -kodieren. Wenn du bereits Off-Spec spielst, warum codierst du nicht jedes * Zeichen? –

Antwort

3

Der Grund, dass - und . werden nicht codiert ist, dass section 2.3 of rfc3986ausdrücklich erlaubt sie als "nicht reservierte" Zeichen. Als solche keine Standards kompatibel Prozent-Encoder tun diese, aus genau dem gleichen Grund, dass sie nicht codieren „some“ (das heißt auch Teil Abschnitt 2.3, über das Etikett ALPHA).

Also: Wenn Sie der Spezifikation nicht folgen werden, müssen Sie den Encoder selbst schreiben.