diff --git a/src/nhttpd/yhttpd_core/helper.cpp b/src/nhttpd/yhttpd_core/helper.cpp index d529127fc..e2449fbbd 100644 --- a/src/nhttpd/yhttpd_core/helper.cpp +++ b/src/nhttpd/yhttpd_core/helper.cpp @@ -203,12 +203,9 @@ std::string decodeString(std::string encodedString) { iStr = strtoul(hex, NULL, 16); /* convert to Hex char */ result += (char) iStr; count += 3; -#if 0 -//why decode '+' to ' ' ? } else if (string[count] == '+') { result += ' '; count++; -#endif } else { result += string[count]; count++; diff --git a/src/nhttpd/yhttpd_core/yrequest.cpp b/src/nhttpd/yhttpd_core/yrequest.cpp index 999903915..84ccc5274 100644 --- a/src/nhttpd/yhttpd_core/yrequest.cpp +++ b/src/nhttpd/yhttpd_core/yrequest.cpp @@ -161,7 +161,11 @@ bool CWebserverRequest::ParseParams(std::string param_string) { if (!ySplitStringExact(param_string, "&", param, param_string)) ende = true; if (ySplitStringExact(param, "=", name, value)) { - value = trim(decodeString(value)); + if("channelname" == name){//skip doubles decode on channlename + value = trim((value)); + }else{ + value = trim(decodeString(value)); + } if (ParameterList[name].empty()) ParameterList[name] = value; else {