Umgebung:
- FHEM auf armbian
- configDB
- logdb
Nach Umzug / Neuaufbau des FHEM-Servers werden Umlaute (genauer: UTF8 Zeichen) im Browser verstümmelt angezeigt.
Beispiel:
ist: "Leistung ges.: Σ: 259.11 W, Î": 130.91 W"
soll: "Leistung ges.: ∑: 259.11 W, Δ: 130.91 W"
Für mich sieht es so aus als ob die Texte nicht als UTF-8 interpretiert werden.
An welcher Stelle kann/muß ich drehen damit die Strings wieder als UTF8 wiedergegeben werden?
Ist das ein Anzeigeproblem oder sind die Daten in der Datenbank schon falsch kodiert?
Im Gegensatz zu Dateien haben Datenbanken eine Vorstellung von "richtige Kodierung".
Das ist ein reines Anzeigeproblem.
Der Datenbestand in der configDB hat sich nicht geändert und vor dem Umzug wurden die Unicodes auch sauber angezeigt.
Anderes Beispiel: ° wird als ° dargestellt.
Zitat von: SusisStrolch am 15 September 2023, 12:16:00Das ist ein reines Anzeigeproblem.
Der Datenbestand in der configDB hat sich nicht geändert und vor dem Umzug wurden die Unicodes auch sauber angezeigt.
Anderes Beispiel: ° wird als ° dargestellt.
Korrektur: ich habe mal direkt in die configDB Daten geschaut.
Deren Daten werden bei mir im Browser ebenfalls so angezeigt.
Und ein Hexdump nach einem DB-Export zeigt mir:
00000120: 2c22 7370 7269 6e74 6628 2222 4c65 6973 ,"sprintf(""Leis
00000130: 7475 6e67 2067 6573 2e3a 20c3 8ec2 a33a tung ges.: ....:
00000140: 2025 2e32 6620 572c 20c3 8ee2 809d 3a20 %.2f W, .....:
00000150: 252e 3266 2057 2222 2c20 2464 6174 617b %.2f W"", $data{
Das wären ja zum Einen ein "c3 8e c2 a3" für das Summenzeichen (4 Byte?) und "c3 8e e2 80 9d" für das Delta-Zeichen (5 Byte).
Strange...
Laut https://www.compart.com/en/unicode/U+2211 sind das weniger Zeichen.
Ich tippe auf ein Problem bei der Migration der Daten.
Aber ich habe doch gar keine Daten migriert, sondern lediglich nen neuen Host aufgesetzt der auf die existierenden Datenbanken (DBLog und configDB) zugreift.
D.h. die existierenden Datenbanken sind auf einem Rechner, was nicht angefasst wurde, und nur der FHEM-Host wurde neu aufgesetzt?
Dann kann ich nur andere LANG / LC_* Umgebungsvariablen als Ursache vorstellen, auch wenn das eigentlich(TM) von der DB-Bibliothek korrekt interpretiert werden sollte.
Womoeglich koennen die DbLog/configDB Maintainer dazu mehr sagen.
In diesem Zusammenhang gibt es das global Attribut encoding, per Voreinstellung aendert sich aber nichts an dem bisherigen Verhalten.
Die damit ermoeglichte FHEM interne Darstellung der Strings mit "Wide-Char" statt UTF-8 wird noch nicht von allen Modulen unterstuetzt.
Keine Ahnung, ob DbLog/configDB es unterstuetzen, das sollte aber nur dann eine Rolle spielen, wenn man das Attribut auf unicode geaendert hat.
Zitat von: rudolfkoenig am 15 September 2023, 18:17:26D.h. die existierenden Datenbanken sind auf einem Rechner, was nicht angefasst wurde, und nur der FHEM-Host wurde neu aufgesetzt?
Genau so.
ZitatDann kann ich nur andere LANG / LC_* Umgebungsvariablen als Ursache vorstellen,
Das ist meine Vermutung. Ich hatte die LANG Konfiguration vergessen.
Und nach dem Starten von FHEM einen "Save Config" durchgeführt.
Evtl. war das letztendlich die Ursache.
Anyway - mal schauen wie ich das jetzt gerade ziehe...