2016-08-05 45 views
-1

ich eine URL wie folgt aufrufen:URL-Dekodierung in Fragezeichen, was zu tomcat

http://localhost:8080/abc/income?content=%E0%B6%B8%E0%B6%9C%E0%B7%99+%E0%B6%B1%E0%B6%B8+%E0%B6%BD%E0%B6%9A%E0%B7%8A%E0%B6%B8%E0%B7%8F%E0%B6%BD%E0%B7%8A.&SOURCE_PRV=%20HTTP/1.1 

und im Backend (Kater) Ich bin die Zeichenfolge decodiert.

Aber ich bekomme den Inhalt als "?? ????????" (mehrere Fragezeichen).

Wie kann ich das beheben?

+0

Zeigen Sie Ihre Dekodierung Code: in der Dokumentation von URL Sie

Verwenden Sie eine der Konstrukteure mit mehr als ein Argument, wie finden. –

+0

Der Anforderungsheader sollte eine Kopfzeile mit der Codierung enthalten, die für die URL-Codierung verwendet werden sollte. Verwenden Sie das für die URL-Dekodierung. Hier scheint es, dass vielleicht eine 'request.setCharacterEncoding (" UTF-8 ");' fehlte, Eine Sache: ** stelle sicher, dass das Fragezeichen, das du siehst, tatsächlich ist **: dump die Codepunkte der Zeichenkette oder so . Vielleicht wurde die Ausgabe ISO-8859-1 codiert. –

+0

Willkommen bei Stack Overflow! Ich habe deine Frage soweit bearbeitet, wie ich dein Problem erraten konnte. Fügen Sie jedoch Code und Beschreibung hinzu, damit mehr Personen mit Wissen über das Thema sie sehen können. Bitte editieren Sie in der spezifischen Fehlermeldung, die Sie antreffen, falls es notwendig ist, das spezifische Problem zu identifizieren. Viel Glück! – manetsus

Antwort

0

Die Klasse java.net.URI kann helfen;

URI uri = new URI(
    "http", 
    "search.barnesandnoble.com", 
    "/booksearch/first book.pdf", 
    null); 

URL url = uri.toURL(); 
//or String request = uri.toString(); 
+0

es funktioniert nicht. Gibt es eine Konfiguration in Tomcat? –