diff --git a/assets/webconfig/js/hyperion.js b/assets/webconfig/js/hyperion.js index 8ea0b572..acc682d7 100644 --- a/assets/webconfig/js/hyperion.js +++ b/assets/webconfig/js/hyperion.js @@ -229,7 +229,7 @@ function requestWriteConfig(config) complete_config[i] = val; }); - var config_str = encode_utf8(JSON.stringify(complete_config)); + var config_str = escape(encode_utf8(JSON.stringify(complete_config))); $.post( "/cgi/cfg_set", { cfg: config_str }) .done(function( data ) { diff --git a/libsrc/webconfig/CgiHandler.cpp b/libsrc/webconfig/CgiHandler.cpp index b4416ffe..20b52b46 100644 --- a/libsrc/webconfig/CgiHandler.cpp +++ b/libsrc/webconfig/CgiHandler.cpp @@ -94,7 +94,7 @@ void CgiHandler::cmd_cfg_set() QJsonParseError error; if (data.contains("cfg")) { - QJsonDocument hyperionConfig = QJsonDocument::fromJson(data["cfg"], &error); + QJsonDocument hyperionConfig = QJsonDocument::fromJson(QByteArray::fromPercentEncoding(data["cfg"]), &error); if (error.error == QJsonParseError::NoError) { @@ -103,6 +103,7 @@ void CgiHandler::cmd_cfg_set() } else { + //Debug(_log, "error while saving: %s", error.errorString()).toLocal8bit.constData()); _reply->appendRawData (QString("Error while validating json: "+error.errorString()).toUtf8()); } }