Hi,
ich muss für die Generierung eines Reports aus Datenbank-Daten die Umlaute und Sonderzeichen durch Unicode ersetzen und habe dafür die folgende Methode:
Zwar funktioniert sie und ich bemerkte auch keine PErformanzprobleme, aber so ganz schlau ist das vermutlich nicht, oder? Die ganzen .replaceAll() nehmen bestimmt unnötig viel Rechenleistung in Anspruch. Gibt es eine Möglichkeit das schlauer zu lösen?
P.S.: Die Unicode-Zeichen im Code-Beispiel werden leider automatisch im Forum als Sonderzeichen angezeigt, deswegen die Methode im Anhang noch einmal als Text.
ich muss für die Generierung eines Reports aus Datenbank-Daten die Umlaute und Sonderzeichen durch Unicode ersetzen und habe dafür die folgende Methode:
Java:
/**
* convenience method for replacing german umlauts with html unicode codes
*
* @param text
* the text to compute
* @return the altered text
*/
public static String replaceUmlauts(String text) {
return text.replaceAll("ä", "ä").replaceAll("Ä", "Ä")
.replaceAll("ö", "ö").replaceAll("Ö", "Ö")
.replaceAll("ü", "ü").replaceAll("Ü", "Ü")
.replaceAll("ß", "ß").replaceAll("é", "é")
.replaceAll("ë", "ë").replaceAll("è", "è")
.replaceAll("ê", "ê").replaceAll("ô", "ô")
.replaceAll("À", "À").replaceAll("Å", "Å")
.replaceAll("Á", "Á").replaceAll("Â", "Â")
.replaceAll("Ç", "Ç").replaceAll("È", "È")
.replaceAll("É", "É").replaceAll("Ê", "Ê")
.replaceAll("Ë", "Ë").replaceAll("à", "à")
.replaceAll("á", "á").replaceAll("â", "â")
.replaceAll("å", "å").replaceAll("æ", "æ")
.replaceAll("ç", "ç").replaceAll("Ô", "Ô")
.replaceAll("Ã", "Ã").replaceAll("ã", "ã")
.replaceAll("Ã", "Ã").replaceAll("ã", "ã")
.replaceAll("Ñ", "Ñ").replaceAll("ñ", "ñ")
.replaceAll("Õ", "Õ").replaceAll("õ", "õ")
.replaceAll("Æ", "Æ").replaceAll("ò", "ò")
.replaceAll("ó", "ó").replaceAll("ø", "ø")
.replaceAll("Ò", "Ò").replaceAll("Ó", "Ó")
.replaceAll("Ø", "Ô").replaceAll("ì", "ì")
.replaceAll("í", "í").replaceAll("î", "î")
.replaceAll("Ì", "Ì").replaceAll("Í", "Í")
.replaceAll("Î", "Î").replaceAll("ù", "ù")
.replaceAll("ú", "ú").replaceAll("û", "û")
.replaceAll("Ù", "Ù").replaceAll("Ú", "Ú")
.replaceAll("“", "“").replaceAll("”", "”")
.replaceAll("„", "„").replaceAll("‚", "‚")
.replaceAll("’", "’").replaceAll("‘", "‘")
.replaceAll("—", "—").replaceAll("–", "–");
}
P.S.: Die Unicode-Zeichen im Code-Beispiel werden leider automatisch im Forum als Sonderzeichen angezeigt, deswegen die Methode im Anhang noch einmal als Text.
Zuletzt bearbeitet: