2009-03-08 5 views
32

Wenn ich die xml durch die URL der Input lesen, und schneiden Sie dann bekomme ich „http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%20Bin%20Bataye.mp3“, alles außer der URL aus.Wie können Sie URLs in Java anzeigen?

Wie Sie sehen können, gibt es eine Menge von „% 20“ s.

möchte ich die URL unescaped werden.

Gibt es eine Möglichkeit, dies in Java zu tun, ohne eine Drittanbieter-Bibliothek?

+0

nur pedantisch zu sein, ist es nicht so etwas wie „normale Unicode“. UTF8 ist eine von mehreren Möglichkeiten, Unicode-Text darzustellen. Aber es gibt keine "wahre" kanonische Repräsentation. – jalf

+0

Wie Jon und ng gesagt haben, hat dies nichts mit Unicode oder UTF-8 zu tun. Vielleicht möchten Sie den Titel ändern. –

Antwort

54

Diese nicht unescaped XML ist, ist diese URL codierten Text. Sieht für mich so aus, als ob Sie Folgendes in den URL-Strings verwenden möchten.

URLDecoder.decode(url); 

Dies wird Ihnen den richtigen Text geben. Das Ergebnis der Entschlüsselung der von Ihnen bereitgestellten Art ist dies.

http://cliveg.bu.edu/people/sganguly/player/ Rang De Basanti - Tu Bin Bataye.mp3 

Der% 20 ist ein flüchtiges Leerzeichen. Um das oben genannte zu erhalten, habe ich das URLDecoder-Objekt verwendet.

+42

Diese Methode ist veraltet. Benutze URLDecoder.decode (location, "UTF-8"); –

0

Ich habe Probleme mit dieser Methode, wenn ich Sonderzeichen wie á, é, í usw. Mein (wahrscheinlich wilde) guess widechars ist nicht richtig codiert ist ... na ja, zumindest ich es erwartet hatte zu siehe Sequenzen wie %uC2BF anstelle von %C2%BF.

Editiert: Meine schlecht, diesen Beitrag erklärt den Unterschied zwischen URL-Codierung und JavaScript die Escape-Sequenzen: sollte URI encoding in UNICODE for apache httpclient 4