Es ist ein bisschen subtiler, als man auf den ersten Blick denken könnte. Für jede URL, bei der es sich um eine bestimmte Form des URI-Standards handelt, sind bestimmte Zeichen besonders. Unter den Sonderzeichen sind :
(Schematrennzeichen) und /
(Pfad- oder Hierarchietrennzeichen), hier ist die vollständige Liste der reservierten Symbole von RFC-2396 :
%Vor%
Es hat wenig mit Sicherheit zu tun, viel mehr mit einem einfachen Standard: Diese Symbole bedeuten etwas Besonderes in jeder URI, URL oder URN. Wenn Sie sie als Teil eines Pfads oder eines Querystrings verwenden müssen (die GET-Anforderung erstellt eine Abfragezeichenfolge für Sie), müssen Sie sie umgehen. Die Kurzversion von Escape ist: nimm die UTF-8-Bytes als Hexadezimalzeichen und setze ihnen ein %
-Zeichen voran. Im Falle der reservierten Zeichen ist das immer ein Ein-Byte-Zeichen in UTF-8 und daher als zwei Hexadezimalziffern ausgeblendet.
Zurück zu Ihrem Problem. Du hast nicht erwähnt, welche Sprache du benutzt hast. Aber jede Sprache, die mit dem Internet funktioniert, kann URLs verschlüsseln oder entschlüsseln. Einige haben Hilfsfunktionen, um eine ganze URL zu dekodieren, aber normalerweise ist es besser, sie in ein Name / Wert-Paar aufzuteilen und dann zu dekodieren. Dadurch erhalten Sie den absoluten URL-Pfad, den Sie benötigen.
Hinweis: Es ist am besten, immer Query-Werte zu dekodieren, weil Leute, die einen Wert eingeben, nicht wissen, ob dieser Wert reserviert ist, und der Browser wird es für Sie kodieren. Wenn Sie dies nicht tun, besteht ein Sicherheitsrisiko.
BEARBEITEN: Wenn Sie innerhalb einer Seite dekodieren müssen, nicht auf der Serverseite, benötigen Sie JavaScript, um die Aufgabe zu erledigen. Sehen Sie sich diese Seite an, um URLs zu dekodieren oder Google zu verwenden, um viele andere zu finden.
Nein, das kannst du nicht. Die Codierung ist erforderlich, um eine gültige URL zu erstellen.
Entschlüsseln Sie stattdessen den Wert in Ihrem Empfangscode (auf welcher Plattform Sie sich befinden, die URL-Dekodierung wird normalerweise automatisch für Sie durchgeführt)
Wenn Sie XMLHttpRequest
verwendet haben, können Sie Text ohne Codierung senden.
Sie können dazu JavaScript verwenden, aber denken Sie daran, content-type
auf text/plain
zu setzen.
Wenn Sie die FORM- und GET-Methode und einige spezielle Zeichen verwenden, erhalten Sie am Ende die Encodierung der resultierenden Abfrage durch den Browser. Für neuere Browser, die das Ändern der URL-Adresse ohne Aktualisierung der Seite (IE10 +) unterstützen, ist es möglich, die URL-Abfragezeichenfolge zu dekodieren und die Adresse zu aktualisieren.
Ich benutze ein Skript wie folgt:
%Vor%Sie können die URL mit JavaScript dekodieren Funktion: decodeURIComponent (Url); Weil Browser die URL für Sonderzeichen codiert. Beispiel: Ссылка ist in % 20https% 3A% 2F% 2Fwww.example.com codiert. Hier werden die Sonderzeichen durch% und ihren ASCI-Wert ersetzt.
Tags und Links html character-encoding urlencode