Wie konvertiere ich Sonderzeichen mit Java?

7

Ich habe Zeichenfolgen wie:

%Vor%

Ich muss sie in

konvertieren %Vor%

i.e. Entfernen Sie Sonderzeichen und konvertieren Sie HTML-Sonderzeichen in normale Zeichen.

    
Vladimir 18.02.2010, 09:22
quelle

4 Antworten

18
%Vor%

Benutze zuerst StringEscapeUtils#unescapeHtml4() (oder #unescapeXml() , abhängig vom ursprünglichen Format, um die & in eine & zu entfernen. Dann benutze String#replaceAll() mit [^\x20-\x7e] , um Zeichen loszuwerden, die sich nicht innerhalb des druckbaren ASCII-Bereichs befinden .

Zusammengefasst:

%Vor%

.. welches produziert

%Vor%

(ohne den abschließenden Punkt wie in Ihrem Beispiel, aber das war nicht im Original vorhanden;))

Das sieht jedoch so aus, als wäre eine Anfrage an Workaround als eine Anfrage an Lösung . Wenn Sie mehr über die funktionale Anforderung und / oder den Ursprung dieser Zeichenfolge erfahren, können wir möglicherweise die richtige Lösung bereitstellen. Der ® sieht nämlich so aus, als würde man die falsche Kodierung zum Einlesen des Strings verwenden und das & sieht so aus, als würde man einen textbasierten Parser anstelle eines vollwertigen HTML-Parsers verwenden, um den String einzulesen.

>     
BalusC 18.02.2010, 15:16
quelle
6

Sie können die StringEscapeUtils verwenden Klasse von Apache Commons Lang Projekt.

    
romaintaz 18.02.2010 09:27
quelle
1

Vielleicht können Sie etwas wie:

verwenden %Vor%

In irgendeinem Projekt habe ich so etwas wie gemacht:

%Vor%

}

    
oropher 18.02.2010 15:05
quelle
1

Wenn Sie die php-Funktion nachahmen möchten, verwendet htmlspecialchars_decode die PHP-Funktion get_html_translation_table (), um die Tabelle auszugeben und dann den Java-Code wie

zu verwenden %Vor%     
Bala Dutt 18.04.2012 06:43
quelle