Halllo
ein frohes neues Jahr euch allen!
mein Arduino Zeigt keine Umlaute!
Serial.print(" Höhe: "); Serial.print(vh_alti);
Kommt im Serialmonitor H§$he oder so!
Das ist ers seit heute was habe ich falsch gemacht?
Gruß Markus
Halllo
ein frohes neues Jahr euch allen!
mein Arduino Zeigt keine Umlaute!
Serial.print(" Höhe: "); Serial.print(vh_alti);
Kommt im Serialmonitor H§$he oder so!
Das ist ers seit heute was habe ich falsch gemacht?
Gruß Markus
Nöö...
Das ist schon länger so, dass der Editor UTF-8 nutzt.
Was der Serielle Monitor nutzt, ist mir nicht bekannt.
Scheint aber viel Ähnlichkeit mit iso-latin-1 zu haben.
Ein Indiz:
Serial.println("H\366lle");
schreibt:
Hölle
Hollender:
Das ist ers seit heute was habe ich falsch gemacht?
Was hast Du denn heute an Deinem Betriebssystem oder der Arduino-Konfiguration umgestellt?
Hast Du versucht, für den Code-Editor in der IDE und/oder für den seriellen Monitor eine andere Schriftart/Font zu verwenden?
Oder hast Du auf Deiner System-Festplatte im Font-Verzeichnis herumgefuhrwerkt?
Hallo
nein Ich habe am Betriebssystem und auch an dem IDE nichts verändert!
Manchmal ist auch nach dem Hochladen die Ausgabe wieder richtig!
Es ligt auch nicht am Serialmonitor denn in der Anzeige von meine Anwendung
ist es dann ach falsch!
Gruß Markus
Kommt im Serialmonitor H§$he
Wenn du statt Höhe Höhe
hättest, wäre mir der Fall klar.
(Hast du in UTF-8 5 Byte erzeugt und die als ANSI angezeigt)
Wie du statt dessen auf den schönen Text H§$he
kommst, keine Ahnung.
Hallo
ja das ist natürlich Höhe!
ich habe nur die Zeichen nicht hinbekommen!
Was kann ich den wo wie ändern das mir dauerhaft Höhe angezeigt wird?
Gruß Maqrkus
Nach diesem Hinweis
[Solved] What is the character encoding of Arduino's Serial messages? - Interfacing w/ Software on the Computer - Arduino Forum hast du wohl "in der Anzeige von meine Anwendung" was kaputt gemacht (Nachtrag: in den Eigenschaften des SerialPort, damit auch der SerialMonitor den Effekt zeigt)
Wenn das eine .net Anwendung ist, hilft evtl.
Und zwar, nach obigem Thread Sytem.Text.Encoding.Default
Wenn nicht, führt das Matrial evtl. weiter.
Ansonsten hilft vermutlich wohl auch ein PC Neustart ( oder Umstieg auf Linux 8) , dann hast du genug andere Probleme)
Hallo
ich verstehe leider nur "Bahnhof"!
liegt es am IDE? 1.6.13
in der IDE einstellung?
am Betriebssystem?
oder am Programmcode selber?
Gruß Markus
am Programmcode selber
Hallo
und warum Läd er das Programm manchmal mit und manchmal ohne die Umlaute hoch?
was muss ich den wo in den Code reinschreiben das er das immer richtig macht?
Gruß Markus
const char test[] = "Höhe";
void setup() {
Serial.begin(9600);
Serial.print (strlen(test));
Serial.print (" Zeichen: ")
for (int i=0; i < strlen(test); i++) {
Serial.print((unsigned int)test[i], HEX); Serial.write(' ');
}
Serial.println(test);
}
void loop () {}
Sind es 4 oder 5 Zeichen ?
combie:
Das ist schon länger so, dass der Editor UTF-8 nutzt.
Was der Serielle Monitor nutzt, ist mir nicht bekannt.
Scheint aber viel Ähnlichkeit mit iso-latin-1 zu haben.
Üblicherweise kommt im SerialMonitor das raus, was man in der IDE eingebaut hat.
Aber es ist sehr lehrreich, wenn nicht.
Ich habe am Betriebssystem und auch an dem IDE nichts verändert!
Manchmal ist auch nach dem Hochladen die Ausgabe wieder richtig!
Es ligt auch nicht am Serialmonitor denn in der Anzeige von meine Anwendung
ist es dann ach falsch!
Ich tippe bei manchmal auf "deine Anwendung". Im Zusammenspiel mit dem Betriebssystem deines PC.
Hollender:
Hallound warum Läd er das Programm manchmal mit und manchmal ohne die Umlaute hoch?
was muss ich den wo in den Code reinschreiben das er das immer richtig macht?
Dasselbe Programm gibt Umlaute auf Serial mal korrekt aus un mal falsch, nur weil es zu verschiedenen Zeitpunkten hochgeladen wurde? Oder nachdem Du zwischendrin Änderungen gemacht hast?
Eventuell würde ich mal probieren, die Daten nicht aus dem RAM, sondern aus dem PROGMEM Flash-Speicher auf Serial auszugeben, wenn es sich um String-Literale handelt.
Also statt:
Serial.print(" Höhe: ");
Setze:
Serial.print(F(" Höhe: "));
Mit Verwendung des F-Makros erfolgt die Ausgabe nicht aus dem RAM, sondern aus dem Programmspeicher (Flash). Eventuell enthält Dein Programm irgendwelche Merkwürdigkeiten beim Umgang mit RAM-Speicher, die den RAM-Inhalt schon zerstören, bevor das Programm an die Stelle kommt, an der die Ausgabe erfolgen soll.
Dann nimm lieber die Variante "mit F-Makro)" im Serial.print(), wenn Du Textkonstanten ausgibst. Das sollte unabhängig davon sein, was Du mit dem RAM zur Laufzeit machst undauf Serial genau so ausgegeben werden wie es im Quelltext-Editor drinsteht). Eine Ausgabe auf LCD mit lcd.print() wäre allerdings ein anderer Fall.