ich eine Zeichenfolge haben, die wir nennen die HttpUtility.UrlEncode("Pfx32q+xLq4R+VocXy4IC8aQNdmFqdA284THap54Bl4=")
den verschlüsselten String als Parameter übergeben diese einen Wert zurückgibtHttpUtility.UrlEncode kodieren keine Zeichen wie +
Pfx32q+xLq4R+VocXy4IC8aQNdmFqdA284THap54Bl4=
Auf Verschlüsselung diesem String verschlüsselt ist, die wie dieser
Pfx32q%2BxLq4R%2BVocXy4IC8aQNdmFqdA284THap54Bl4%3D
wo in +
ist mit% 2 usw. ersetzen und so weiter auf meinem Entwicklungssystem, aber wenn der gleiche Code auf einem Produktionsserver des Plus stattdessen bleibt es als + nicht codiert wird ausgeführt wird erhalten.
Wir können nicht darauf hinweisen, was das wirklich verursacht. Gibt es ein Szenario oder einen Fall, wo beim Aufruf der HttpUtility.UrlEncode
Methode die Zeichen wie + nicht codiert werden?
'+' ist auch ein gültiges Zeichen für URL, die ist der Grund, warum es nicht codiert hier wird, ist die [base URI] (https://tools.ietf.org/html/rfc3986) Definition – Webruster
Sind Sie die gleiche .NET-Version auf beiden Dev-Box und Server laufen? Läuft auf dem Server möglicherweise Mono? Der Microsoft-Quellcode für .NET 4.0 und höher entkommt eindeutig '+' Zeichen. Siehe 'IsUrlSafeChar' hier http://referencesource.microsoft.com/#System/net/System/Net/WebUtility.cs Das' + 'wird im Kommentar explizit als maskiert trotz der RFC-Regeln erwähnt. – Baldrick
URI * Pfade * und * Daten * sind auf verschiedene Arten kodiert. Sie sollten EscapeDataString für Daten verwenden. Sie sollten auch sicherstellen, dass Sie die gleichen .NET-Versionen auf dem Server und auf Ihrem Computer verwenden, indem Sie das Upgrade durchführen, je nachdem, was zurückliegt. –