FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Loredo am 27 November 2016, 11:39:51

Titel: Verwendung geschützter Leerzeichen in Readings Value
Beitrag von: Loredo am 27 November 2016, 11:39:51
Hi,


sobald ich in einem Reading ein geschütztes Leerzeichen mittels chr(0x202F) verwende, stürzt FHEM kurze Zeit später mit dieser Meldung ab:




Wide character in syswrite at FHEM/TcpServerUtils.pm line 269.



Ich vermute das passiert beim schreiben von ./FHEM/fhem.save. Ist diese Funktion nicht UTF8 fest? Ich hadere beim Thema Codierung immer(noch) und weiß daher nicht genau, wo ich für einen Patch hinfassen müsste.




Gruß
Julian
Titel: Antw:Verwendung geschützter Leerzeichen in Readings Value
Beitrag von: Loredo am 27 November 2016, 12:10:56
Es muss wohl eher im Bereich FHEMWEB liegen:




2016.11.27 12:07:21.017 5: Triggering WH (84 changes)
2016.11.27 12:07:21.017 5: Starting notify loop for WH, first event wind_speed_mph: 0.0
2016.11.27 12:07:21.038 4: name: /weatherstation/updateweatherstation.php?outhumiabsf=3.8&indoorhumidity=39&realtime=1&light=4583.9&windchill=6.3&windspeedbft=0&windgustfts=0.0&indewpoint=7.7&windspeedkn=0.0&rtfreq=5&yearlyrainin=46.9&absbaromin=28.2&absbarommm=7.2&indoortempf=72.1&windspdmph=0.0&monthlyrainin=3.5&tempf=43.3&baromin=29.7&windspeedkn_avg2m=0.0&relbaro=1004.1&windspeedmps=0.0&outtemp=6.3&barommm=7.5&inhumiabs=7.7&rainin=0.0&windgustmph=0.0&dewpoint=2.9&rainrate=0.0&UVI=0&winddir=303&windspeed_avg2m=0.0&yearlyrain=1190.7&windgustkn=0.0&windgustbft=0&windgustmps=0.0&windspeedmps_avg2m=0.0&dailyrainin=0.0&action=updateraw&ID=IBAYERNM70&dateutc=2016%2d11%2d27%2011%3a7%3a20&monthlyrain=90.0&windchillf=43.3&weeklyrainin=0.0&intemp=22.3&windgust_10m=4.0&windgustmph_10m=2.5&outhumiabs=5.8&outhumi=79&windcompasspoint=WNW&windspeedbft_avg2m=0&windgust=0.0&PASSWORD=&indoorhumidityabsf=83.6&weeklyrain=0.9&windspdmph_avg2m=0.0&dailyrain=0.9&absbaro=956.4&dewptf=37.2&winddir_avg2m=316&indoordewpointf=51.6&inhumi=39&windcompasspoint_avg2m=NW&solarradiation=36.2&softwaretype=HP1000%20V2%2e2%2e2&UV=82&humidity=79&windspeed=0.0& / RL:7 / text/plain; charset=utf-8 /  /
2016.11.27 12:07:21.038 4: Syswrite: Wide character in syswrite at fhem.pl line 691.
, deleting WEB_127.0.0.1_63184
2016.11.27 12:07:26.042 4: Connection accepted from WEB_127.0.0.1_63189



Wenn ich bei meinem Modul noch dediziert ein "use utf8;" einbaue, dann stürzt FHEM nicht mehr ab. Aber die Meldung bleibt trotzdem im Log.
Außerdem werden UTF8 Character dann in der Raumansicht nicht mehr richtig dargestellt, nur in der Detailansicht (siehe Screenshots).
Titel: Antw:Verwendung geschützter Leerzeichen in Readings Value
Beitrag von: rudolfkoenig am 27 November 2016, 12:27:43
FHEM-Intern duerfen keine Wide-Characters verwendet werden, alle Module muessen dafuer sorgen, dass intern nur UTF-8 verwendet wird.
Titel: Antw:Verwendung geschützter Leerzeichen in Readings Value
Beitrag von: Loredo am 27 November 2016, 13:07:50
Danke, Rudi für den Denkanstoß. Nachdem ich an einigen Stellen encode_utf8() ergänzt hatte, geht es jetzt auch.