(gelöst) DBLog - Readings mit Umlauten

Begonnen von PS915, 27 November 2021, 20:31:59

Vorheriges Thema - Nächstes Thema

PS915

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?  :(

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DS_Starter

Die Clientverbindung DbLog-> DB auch auf UTF8 einstellen.

Was zeigt denn ein DbLog "set ... configCheck" ?
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

PS915

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.


PS915

#4
@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?

DS_Starter

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".
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

PS915

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!  ::) 

DS_Starter

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter