C/C++ Probleme mit ä,ö,ü und ß?
Hallo,
ich hab folgendes Projekt nachgebaut und auf deutsch umgeschrieben.. im githubcode ist natürlich noch alles auf englisch. Hab eigentlich nur die Webabfrage von openweathermap auf de statt en umgestellt und die Wochentagsbezeichnungen geändert. Jetzt habe ich das Problem das ä ö ü und ß bei der Description nicht mehr ausgegeben werden statt Mäßiger Regen steht also Miger Regen. Hat hierfür vlt. wer ein Lösung parat? https://github.com/andrei7c4/weatherdisplay
2 Antworten
Hallo Samyness,
ich habe mir das Projekt jetzt nicht direkt angeschaut, aber es hört sich nach einem Codierungsfehler an. Da das Projekt ja aus dem Englischen stammt wird dort auch ein entsprechender Zeichensatz verwendet worden sein.
Je nach dem wie du dich mit C / C++ auskennst kannst du dir den Code mal genauer angucken, entweder wurde an einer Zeile definiert welche Codierung verwendet wurde oder es wird der System verwendet. Im ersten Fall solltest du einfach die Codierung durch z.B. UTF-8 ersetzen können. Im Zweiten Fall kannst du entweder selber den Codierungs-Code-Schnipsel einfügen oder deine System-Codierung ändern.
Mfg
TOminerTV
Sorry erstmal das ich das erst jetzt lese :D.
Was du meinst ist wohl das du eine Schriftdatei hast welche nur für die Englische-Sprache, bzw. die ASCII Tabelle ausgelegt ist. Die ASCII-Tabelle hat keine Einträge für Umlaute, deshalb nutzt man ja mittlerweile auch UTF-8 oder andere Codierungen. Es gibt halt die Möglichkeit wenn das Problem nur die Schriftdatei ist diese einfach auszutauschen. Unter dem selben Namen eine andere Datei zu speichern. Allerdings kann ich dir nicht sagen was genau in der arial56.c Datei steht, ist schon etwas länger her das ich mit C was gemacht habe. Wenn das ganze in der C-Datei noch definiert werden muss dann könnte das natürlich etwas problematischer werden.
Soweit ich das sehe scheint der Code davon auszugehen, dass ein Zeichen in ein Char passt.
Das ist allerdings nicht der Fall, wenn du ein Encoding wie beispielsweise UTF-8 verwendest, welches Umlaute darstellen könnte.
Es handelt sich demanch vermutlich schlicht um ein nicht implementiertes Feature.
Demnach würde ich dir raten, einen Issue im Github-repository zu erstellen, sodass dir
1.) Der Entwickler evtl. genauere Angaben machen kann, sofern ich mich irren sollte
2.) Der Entwickler das Feature(UTF-8-Support) hinzufügen kann.
Ich habe den Fehler schon gefunden denk ich.. in app/src/fonts/arial56.c werden die ascii chars der Umlaute nicht definiert.
Weißt du wie ich die chars der Umlaute definieren müsste, damit ich den richtigen output bekomme? Kann die .fnt mit dem dazugehörigen png ja nicht einfach umwandeln oder?