Auf dem LCD-Display (2x16-Zeichen, Hitachi HD44780, Nutzung der Standard-LiquidCrystal Library) möchte ich Texte mit Umlauten (äöü) und Gradzeichen (°) ausgeben.
Dies geht nicht, statt Umlauten (z.B. ä) kommen 2 japanische Zeichen.
Ich versuche nun zur Diagnose den Text Zeichenweise auszugeben und im Falle eines Sonderzeichens, den entsprechenden ASCII-Code auszugeben (Programmauszug siehe unten).
Funktioniert prinzipiell aber: Vor dem Sonderzeichen kommt immer noch ein japanisches Zeichen.
Dieses wird auch ausgeben, wenn (siehe Code) z.B. im Falle von "ä" statt z = char(225); folgendes benutze z = 'x';
Beispiel zur Illustration (% steht hier für das japanische Zeichen, wobei vor dem ° ein anderes jap. Zeichen steht als bei äöü).
"n%ämlich (100 %°C), m%üssen, k%önnen"
Wer hat eine Idee oder sehe ich den Wald vor lauter Bäumen nicht? Danke für jeden Hinweis.
...
String text = "nämlich (100 °C) müssen, können";
int i = 0 ;
int n = 0 ;
char z = ' ';
...
// (Loop durch ganzen String, i = aktuell auszugebendes Zeichen)
...
z = text.charAt(i);
// Allfällige Sonderzeichen konverieren
switch (z) {
case 'ä':
z = char(225);
break;
case 'ö':
z = char(239);
break;
case 'ü':
z = char(245);
break;
case '°':
z = char(223);
break;
}
// Aktuelles Zeichen auf Display ausgeben
lcd.write(z);
...