FHEM Forum

FHEM => Automatisierung => Thema gestartet von: PS915 am 27 November 2021, 20:31:59

Titel: (gelöst) DBLog - Readings mit Umlauten
Beitrag von: PS915 am 27 November 2021, 20:31:59
Moin zusammen,

ich habe Probleme mit DBLog. Readings, die Umlaute enthalten werden falsch in der MySQL Datenbank abgespeichert.


Hier zum Beispiel das Reading "weather" von Proplanta. Aus Sprühregen wird in der Datenbank Sprühregen. Das kann ja so nicht gewollt sein, oder?

DB ist mit UTF8   erstellt worden:
CREATE DATABASE `fhem` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;


Wie kann ich das Problem fixen?  :(
Titel: Antw:DBLog Bug - Readings mit Umlauten
Beitrag von: CoolTux am 27 November 2021, 21:17:29
Kannst Du die Abfrage eventuell noch mal direkt auf dem Server in der Konsole machen? Vielleicht ist es ja die Anwendung welche Du verwendest die falsch darstellt.
Titel: Antw:DBLog Bug - Readings mit Umlauten
Beitrag von: DS_Starter am 27 November 2021, 21:56:52
Die Clientverbindung DbLog-> DB auch auf UTF8 einstellen.

Was zeigt denn ein DbLog "set ... configCheck" ?
Titel: Antw:DBLog Bug - Readings mit Umlauten
Beitrag von: PS915 am 27 November 2021, 22:07:48
Wie im Screenshot zu sehen, habe ich phpMyAdmin verwendet.
In der Console als auch auf zwei anderen Clients (RemoDB auf Android sowie Grafana auf einer Synology NAS) werden die Umlaute nicht korrekt angezeigt.

Ist also ziemlich sicher, dass es kein Darstellungsfehler ist, sondern wirklich so in der Datenbank abgespeichert wurde.

Titel: Antw:DBLog Bug - Readings mit Umlauten
Beitrag von: PS915 am 27 November 2021, 22:10:47
@DS_Starter

Wir kommen der Sache näher:

ZitatResult of encoding check

Encoding used by Client (connection): LATIN1
Encoding used by DB db10995356-fhem: UTF8
Recommendation: Both encodings should be identical. You can adjust the usage of UTF8 connection by setting the UTF8 parameter in file '/opt/fhem/db.conf' to the right value. Your DBD version fulfills UTF8 support, no need to update DBD.

Nun die Frage, wie stelle ich von LATIN1 auf UTF8 um?

Wie muss das Parameter in db.conf gesetzt werden?
Titel: Antw:DBLog Bug - Readings mit Umlauten
Beitrag von: DS_Starter am 27 November 2021, 22:16:47
Das steht gleich zu Begin bei "help dblog".

    #%dbconfig= (                                                   
    #    connection => "mysql:database=fhem;host=<database host>;port=3306",   
    #    user => "fhemuser",                                         
    #    password => "fhempassword",
    #    # optional enable(1) / disable(0) UTF-8 support
    #    # (full UTF-8 support exists from DBD::mysql version 4.032, but installing
    #    # 4.042 is highly suggested)   
    #    utf8 => 1   
    #);

D.h. also den Schlüssel "utf8 => 1" setzen. Im Internal steht dann UTF8 auf "1".
Titel: Antw:DBLog Bug - Readings mit Umlauten
Beitrag von: PS915 am 27 November 2021, 22:26:38
Vielen Dank euch! Nach der Änderung der db.conf und einem set DBLogging rereadcfg steht der Internal UTF8 auf 1 und die Umlaute werden korrekt übertragen! :)

Wieder etwas gelernt!  ::) 
Titel: Antw:(gelöst) DBLog - Readings mit Umlauten
Beitrag von: DS_Starter am 27 November 2021, 22:33:49
:)