html: fix url_escape
When used in URLs to be passed to a browser, strings MUST NOT contain +. We must escape + too, otherwise browsers converts it to a space or %20, which does not represent the original value anymore. Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
parent
6379065f15
commit
bfda0e962b
@ -312,7 +312,7 @@ namespace stdex
|
|||||||
stdex_assert(src || !num_chars);
|
stdex_assert(src || !num_chars);
|
||||||
for (size_t i = 0; i < num_chars && src[i]; ++i) {
|
for (size_t i = 0; i < num_chars && src[i]; ++i) {
|
||||||
switch (src[i]) {
|
switch (src[i]) {
|
||||||
case ' ': dst += "+"; break;
|
case ' ': dst += "%20"; break;
|
||||||
case '<': dst += "%3C"; break;
|
case '<': dst += "%3C"; break;
|
||||||
case '>': dst += "%3E"; break;
|
case '>': dst += "%3E"; break;
|
||||||
case '#': dst += "%23"; break;
|
case '#': dst += "%23"; break;
|
||||||
@ -327,6 +327,7 @@ namespace stdex
|
|||||||
case ']': dst += "%5D"; break;
|
case ']': dst += "%5D"; break;
|
||||||
case '`': dst += "%60"; break;
|
case '`': dst += "%60"; break;
|
||||||
case ';': dst += "%3B"; break;
|
case ';': dst += "%3B"; break;
|
||||||
|
case '+': dst += "%2B"; break;
|
||||||
case '/': dst += "%2F"; break;
|
case '/': dst += "%2F"; break;
|
||||||
case '?': dst += "%3F"; break;
|
case '?': dst += "%3F"; break;
|
||||||
case ':': dst += "%3A"; break;
|
case ':': dst += "%3A"; break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user