75_MSG: fix utf8 encoding (Forum #39983)

git-svn-id: https://svn.fhem.de/fhem/trunk@19215 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2019-04-18 11:55:19 +00:00
parent 06b5d5102b
commit 53d961b626

View File

@ -25,6 +25,7 @@ use strict;
use warnings; use warnings;
use Data::Dumper; use Data::Dumper;
use Time::HiRes qw(time); use Time::HiRes qw(time);
use Encode;
use utf8; use utf8;
# initialize ################################################################## # initialize ##################################################################
@ -235,19 +236,19 @@ s/^[\s\t ]*([!]?(([A-Za-z0-9%+._-])*@([%+a-z0-9A-Z.-]+))[\w,@.!?|:]*)[\s\t ]+//
# Use JSON module if possible # Use JSON module if possible
eval { eval {
require JSON; require JSON::PP;
import JSON qw( decode_json ); import JSON::PP qw( decode_json );
}; };
if ($@) { if ($@) {
Log3 $globalDevName, 3, Log3 $globalDevName, 3,
"msg: Error loading Perl::JSON. " "msg: Error loading JSON::PP. "
. "Please switch to new syntax to use user parameters"; . "Please switch to new syntax to use user parameters";
} }
else { else {
Log3 $globalDevName, 4, Log3 $globalDevName, 4,
"msg: Please switch to new syntax to use user parameters"; "msg: Please switch to new syntax to use user parameters";
my $o; my $o;
eval '$o = decode_json( Encode::encode_utf8($1) ); 1'; eval '$o = decode_json( encode_utf8($1) ); 1';
if ($@) { if ($@) {
Log3 $globalDevName, 5, Log3 $globalDevName, 5,
"msg: Error decoding JSON for user parameters: $@"; "msg: Error decoding JSON for user parameters: $@";
@ -1954,18 +1955,19 @@ m/^(absent|disappeared|unauthorized|disconnected|unreachable)$/i
Log3 $logDevice, 5, Log3 $logDevice, 5,
"msg $device: " "msg $device: "
. "$type[$i] route command (Perl): $cmd"; . "$type[$i] route command (Perl): $cmd";
eval $cmd; #eval $cmd;
unless ( !$@ || $@ =~ m/^[\s\t\n ]*$/ ) my $ret = AnalyzePerlCommand(undef, $cmd);
unless ( !$ret || $ret =~ m/^[\s\t\n ]*$/ )
{ {
$error = 1; $error = 1;
$loopReturn3 .= "$gatewayDev: $@\n"; $loopReturn3 .= "$gatewayDev: $ret\n";
} }
} }
else { else {
Log3 $logDevice, 5, Log3 $logDevice, 5,
"msg $device: " "msg $device: "
. "$type[$i] route command (fhem): $cmd"; . "$type[$i] route command (fhem): $cmd";
my $ret = fhem $cmd, 1; my $ret = AnalyzeCommandChain(undef,$cmd);
unless ( !$ret unless ( !$ret
|| $ret =~ m/^[\s\t\n ]*$/ ) || $ret =~ m/^[\s\t\n ]*$/ )
{ {