Problem mit Umlauten

DirkHo

Erfahrenes Mitglied
Hallo,

ich verwende Eclipse und Selenium Server zum Testen von Web-Applikationen (aufgerufen werden die von einem ANT-Skript über JUnit-Task). Nun habe ich ein paar Testfälle geschrieben, die auch schön durchlaufen.

Nun aber mein Problem bei einem neuen Testfall: Ich habe eine Abfrage, ob ein Text auf einer aufgerufenen Seite existiert. Dieser Text beinhaltet einen Umlaut. Wenn ich nun mit assertEquals prüfe, ob der gefundene und der gesuchte Text übereinstimmen, dann bekomme ich immer einen Fehler, weil der Umlaut im gesuchten Wort falsch dargestellt wird (als A mit Tilde drüber und "Quadrat" dahinter).

Nun habe ich sowohl den Eclipse workspace auf utf-8 gesetzt, als auch das komplette Projekt und eben diese Java-Datei. Bringt aber alles leider nichts.

Hat jemand eine Idee, was ich noch machen könnte?

Vielen Dank und viele Grüße,

Dirk
 
Moin,

wir haben hier aufgrund unser Datenbank (uralt-BTrieve) das gleiche Problem und jagen daher Zeichenketten stets durch eine ANSI2ASCII-Konvertierung ...
Hier mal die beiden relevanten Methoden zur Umwandlung:
Java:
/**
  * Wandelt einen Ansi-Wert in einen Ascii-Wert
  * @param ansi Der Ansi-Wert
  * @return Der Ascii-Wert
  */
 public static char ansi2ascii(char ansi) 
{
   switch (ansi) 
   {
     case (char) (228):
       return (char) (132); // ä
     case (char) (246):
       return (char) (148); // ö
     case (char) (252):
       return (char) (129); // ü
     case (char) (196):
       return (char) (142); // Ä
     case (char) (214):
       return (char) (153); // Ö
     case (char) (220):
       return (char) (154); // Ü
     case (char) (223):
       return (char) (225); // ß
     default:
       return ansi;
   }
 }


 /**
  * Wandelt einen Ascii-Wert in einen Ansi-Wert
  * @param ascii Der Ascii-Wert
  * @return Der Ansi-Wert
  */
 public static char ascii2ansi(char ascii)
 {
   switch (ascii) 
   {
     case (char) (132):
       return (char) (228); // ä
     case (char) (148):
       return (char) (246); // ö
     case (char) (129):
       return (char) (252); // ü
     case (char) (142):
       return (char) (196); // Ä
     case (char) (153):
       return (char) (214); // Ö
     case (char) (154):
       return (char) (220); // Ü
     case (char) (225):
       return (char) (223); // ß
     default:
       return ascii;
   }
 }

Gruß
Klaus
 
Hallo VfL-freak,

vielen Dank für deine Antwort!

Ich habe das Ganze jetzt anders und etwas einfacher gelöst:

Code:
        ByteToCharUTF8 converter = new ByteToCharUTF8();
        
        byte[] data = new byte[TestCaseCheckDateInput.HEADLINE.length()];

        data = TestCaseCheckDateInput.HEADLINE.getBytes();

        char[] convertAll = converter.convertAll(data);
        String result = new String(convertAll);

        data = null;
        converter.reset();
        converter = null;

Trotzdem vielen Dank für die schnelle Antwort! Vielleicht sieht man sich ja diese Saison (KSC) ;)

Viele Grüße,

Dirk
 
Hallo Dirk,

oh, das ist eine interessante Klasse, die ich noch gar nicht kannte :eek:
Da werde ich mich bei gelegenheit auch mal mit beschäftigen :)


:offtopic:
Trotzdem vielen Dank für die schnelle Antwort! Vielleicht sieht man sich ja diese Saison (KSC) ;)
Das werden wir bestimmt - auch wenn es dann sehr hart für euch werden wird ..... :-)
BTW: spielt der Schäfer eigentlich noch bei Euch ?

tschüss
Klaus
 
Zurück