Files
wt32sc01-dashboard/include/text_utils.h
T
stefankoelle 82d466cada Phase 0: minimal main.cpp (WiFi + display + LVGL test button) + carry over hardware-independent helpers
- src/main.cpp rewritten for ESP32-S3: Serial + display_init + WiFi
  connect (logic ported from old main.cpp, M5.Lcd prints -> Serial),
  LVGL test button screen to verify touch in Phase 1
- include/text_utils.h, date_utils.h: kept 1:1 (no M5Stack dependency)
- include/secrets.h.example, .gitignore, scripts/{build,deploy}.sh,
  .github/workflows/build.yml: kept 1:1 (hardware-independent)
2026-08-02 10:29:01 +02:00

28 lines
957 B
C

#pragma once
#include <Arduino.h>
// M5Stack default font can't render UTF-8 German umlauts correctly.
// Transliterate them to ASCII before printing.
inline String sanitizeGermanText(const String &input) {
String out;
out.reserve(input.length());
for (size_t i = 0; i < input.length(); i++) {
unsigned char c1 = input[i];
if (c1 == 0xC3 && i + 1 < input.length()) {
unsigned char c2 = input[i + 1];
switch (c2) {
case 0xA4: out += "ae"; i++; continue;
case 0xB6: out += "oe"; i++; continue;
case 0xBC: out += "ue"; i++; continue;
case 0x84: out += "Ae"; i++; continue;
case 0x96: out += "Oe"; i++; continue;
case 0x9C: out += "Ue"; i++; continue;
case 0x9F: out += "ss"; i++; continue;
default: break;
}
}
out += (char)c1;
}
return out;
}