Umlaute auf e-paper Display darstellen

Wie macht ihr es mit den Umlauten auf einem E-Paper Display ? Ich habe schon mehrere Schriftarten getestet und mit keiner werden mir Umlaute dargestellt. Wenn ich die .h Datei im Editor öffne sind dort keine Umlaute hinterlegt. ich habe schon versucht die Umlaute selbst hinzuzufügen indem ich Testeweise das "ä/Ä" selbst neu geizeichnet habe und neu die Schriftart neu erstellt, es klappt leider nicht.
Es muß doch möglich sein ohne das ich aus den Umlauten ae, ue, oe machen muß. Ich habe schon in Netz gesucht, aber nicht die richtige Lösung gefunden, außer eine .ttf mit FontForge eine .bdf datei erstellen und dann mit Fontconvert wieder in eine Adafruit .h datei zu konvertieren.
Bei dieser möglichkeit habe ich aber Probleme die größe richtig anzupassen damit es aussieht wie bei zb. FreeSansBold9pt7b.h.
Habt ihr eine einfachere Lösung ?

Bin für alle Tips dankbar

Code posten ist der erste Weg zur Lösung ... IMO sind deine ÄÖÜ UTF-8 und du hast "nur" eine ASCII-Tabelle hinterlegt.

Folgende Library verwenden und sich mal den Beispielcode genau anschauen:

Oli Kraus hat in seinen Bibliotheken Fonts mit Umlauten für UTF-8 zur Verfügung gestellt. Du könntest also Adafruit_GFX durch U8g2_for_Adafruit_GFX ersetzen. Die Zeile u8g2_for_adafruit_gfx.print("Hallo äöüßÄÖÜ"); wird auf meinem SSD1306 so dargestellt:

Ob das auch mit Deinem e-paper Display funktioniert?

Sollte es, weil in dem von mir geposteten Beispiel für ein ePaper-Display werden die u8G2 Fonts verwendet.

Dein Beitrag hatte mich zu meinem angeregt :slightly_smiling_face:

Da Adafruit_GFX in diesem Thema verwendet wird, wären die Anpassungen minimal.

ich habe es damit mal probiert, das Beispiel funktioniert. Bekomme es aber nicht korrekt nicht meinem Google Kalender Sketch eingefügt, es werden mir dann nur Quadrate angezeigt und die Farbeinstellung für die Titel, Events werden nicht angenommen mit " * For U8g2 the color is specified with the setDrawColor() function.". Bin jetzt bei "writeUmlautText" geblieben und konvertiere mir die Schriftart.

void writeUmlautText(const char* text) {
  while (*text) {
    if (*text == '\xC3') { // UTF-8 Kodierung für Umlaute
      text++; // Überspringe das C3
      switch (*text) {
        case '\xA4': display.write(0xE4); break; // ä
        case '\xB6': display.write(0xF6); break; // ö
        case '\xBC': display.write(0xFC); break; // ü
        case '\x84': display.write(0xC4); break; // Ä
        case '\x96': display.write(0xD6); break; // Ö
        case '\x9C': display.write(0xDC); break; // Ü
        case '\x9F': display.write(0xDF); break; // ß
        default: display.write('?'); break;     // Unbekanntes Zeichen
      }
    } else {
      display.write(*text); // Normales Zeichen
    }
    text++;
  }
}

Trotzdem danke an Kai für den Hinweis