2011-01-05 14 views
2

Mit HttpUtility.UrlEncode und über die URL übergeben die Empfangsseite die Variablen wie sieht:UrlEncoding - welche Codierung sollte ich verwenden?

Neuigkeiten -> Marke + neue
Airconaire + Ltd -> Airconaire + Ltd

Können Sie sehen, wie die erste und die zweite beide haben eine + in ihnen, wo sie nicht am Anfang gemacht haben? Ich gehe davon aus, dass dies etwas mit der Codierung zu tun hat (speziell RFC3986 oder RFC2396), aber wie löse ich das?

Ich denke, im Idealfall die Räume% umgewandelt werden sollten 20, aber ist dies der beste Weg nach vorn?

+0

Wenn Sie sagen, dass UrlPathEncode() funktioniert nicht für Sie, können Sie Ihren Code schreiben? –

Antwort

2

Try HttpUtility.UrlPathEncode statt URLEncode verwenden.

+0

Danke - aber warum UrlPathEncode funktioniert über UrlEncode? –

+0

UrlPathEncode verwendet eine Plattform-agnostische Codierungsmethode, während UrlEncode einen Microsoft-Ansatz verwendet (glaube ich). – Lazarus

+0

Also sollte ich meine App durchlaufen jede Instanz von UrlEncode zu UrlPathEncode ersetzen? –

1

Die UrlEncode() Methode kann die gesamte URL, einschließlich Abfrage-String-Werte zu codieren, verwendet werden. Wenn Zeichen wie Leerzeichen und Interpunktion in einem HTTP-Stream übergeben werden, können sie am empfangenden Ende falsch interpretiert werden. URL-Codierung konvertiert Zeichen, die in einer URL nicht zulässig sind, in Zeichen-Entity-Entsprechungen; URL-Decodierung kehrt die Codierung um. Wenn beispielsweise die Zeichen < und> in einen Textblock eingebettet sind, der in einer URL übertragen werden soll, werden sie als% 3c und% 3e codiert.

Sie können eine URL mit dem UrlEncode() -Methode oder der UrlPathEncode() -Methode kodieren. Die Methoden liefern jedoch unterschiedliche Ergebnisse. Die UrlEncode() -Methode konvertiert jedes Leerzeichen in ein Pluszeichen (+). Die Methode UrlPathEncode() konvertiert jedes Leerzeichen in die Zeichenfolge "% 20", die ein Leerzeichen in hexadezimaler Schreibweise darstellt. Verwenden Sie die UrlPathEncode() -Methode, wenn Sie den Pfadabschnitt einer URL codieren, um eine konsistent decodierte URL zu gewährleisten, unabhängig davon, welche Plattform oder welcher Browser die Decodierung durchführt.

http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx

Verwandte Themen