Ich habe das global Attribut encoding eingefuehrt, mit den moeglichen Werten unicode und utf8.
utf8 ist default, entspricht dem bisherigen internen Format utf-8.
Mit unicode (das ist EXPERIMENTELL und Work-in-Progess) wird intern Unicode/Wide-Char verwendet, d.h. nach dem Einlesen muss Encode::decode('UTF-8', ...), und vor dem Ausgeben Encode::encode('UTF-8', ...) durchgefuehrt werden.
Mit "attr global encoding unicode" wird die globale Variable $unicodeEncoding gesetzt.
Umgestellt und kurz getestet habe ich:
- fhem.cfg und fhem.state
- FileRead/FileWrite in fhem.pl
- das FHEM Log
- telnet
- FHEMWEB
- HttpUtils.pm
Das Setzen des Attributes im laufenden Betrieb wird nicht empfohlen, getestet habe ich es nicht.
Ich habe darauf geachtet, dass beim nicht gesetzten Attribut der Code gleich bleibt, kann aber sein, dass ich was uebersehen habe.
Ich als Maintainer muss noch eventType, FileLog, MQTT2_CLIENT und MQTT2_SERVER umstellen. Falls ich was vergessen habe, bitte melden.
Natuerlich gibt es eine ganze Reihe anderer Module, die das explizit unterstuetzen muessen, mir faellt im Moment configDB und DbLog ein.