From 53d961b626610712100142ebcfe2bcb97d19db77 Mon Sep 17 00:00:00 2001 From: jpawlowski Date: Thu, 18 Apr 2019 11:55:19 +0000 Subject: [PATCH] 75_MSG: fix utf8 encoding (Forum #39983) git-svn-id: https://svn.fhem.de/fhem/trunk@19215 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/75_MSG.pm | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/fhem/FHEM/75_MSG.pm b/fhem/FHEM/75_MSG.pm index b222911b6..c559f0c5a 100755 --- a/fhem/FHEM/75_MSG.pm +++ b/fhem/FHEM/75_MSG.pm @@ -25,6 +25,7 @@ use strict; use warnings; use Data::Dumper; use Time::HiRes qw(time); +use Encode; use utf8; # initialize ################################################################## @@ -235,19 +236,19 @@ s/^[\s\t ]*([!]?(([A-Za-z0-9%+._-])*@([%+a-z0-9A-Z.-]+))[\w,@.!?|:]*)[\s\t ]+// # Use JSON module if possible eval { - require JSON; - import JSON qw( decode_json ); + require JSON::PP; + import JSON::PP qw( decode_json ); }; if ($@) { Log3 $globalDevName, 3, - "msg: Error loading Perl::JSON. " + "msg: Error loading JSON::PP. " . "Please switch to new syntax to use user parameters"; } else { Log3 $globalDevName, 4, "msg: Please switch to new syntax to use user parameters"; my $o; - eval '$o = decode_json( Encode::encode_utf8($1) ); 1'; + eval '$o = decode_json( encode_utf8($1) ); 1'; if ($@) { Log3 $globalDevName, 5, "msg: Error decoding JSON for user parameters: $@"; @@ -1954,18 +1955,19 @@ m/^(absent|disappeared|unauthorized|disconnected|unreachable)$/i Log3 $logDevice, 5, "msg $device: " . "$type[$i] route command (Perl): $cmd"; - eval $cmd; - unless ( !$@ || $@ =~ m/^[\s\t\n ]*$/ ) + #eval $cmd; + my $ret = AnalyzePerlCommand(undef, $cmd); + unless ( !$ret || $ret =~ m/^[\s\t\n ]*$/ ) { $error = 1; - $loopReturn3 .= "$gatewayDev: $@\n"; + $loopReturn3 .= "$gatewayDev: $ret\n"; } } else { Log3 $logDevice, 5, "msg $device: " . "$type[$i] route command (fhem): $cmd"; - my $ret = fhem $cmd, 1; + my $ret = AnalyzeCommandChain(undef,$cmd); unless ( !$ret || $ret =~ m/^[\s\t\n ]*$/ ) {