diff --git a/tests/parse_test.cpp b/tests/parse_test.cpp index f058a11..2691690 100644 --- a/tests/parse_test.cpp +++ b/tests/parse_test.cpp @@ -121,8 +121,8 @@ int main() { assert(hash("tesT") == hash("test")); assert(hash("test") != hash("tset")); - auto percent_decoded = "testing æøå !#$&'()*+,/:;=?@[]"; - auto percent_encoded = "testing+æøå+%21%23%24%26%27%28%29%2A%2B%2C%2F%3A%3B%3D%3F%40%5B%5D"; + auto percent_decoded = "testing æøå !#$&'()*+,/:;=?@[]123"; + auto percent_encoded = "testing+æøå+%21%23%24%26%27%28%29%2A%2B%2C%2F%3A%3B%3D%3F%40%5B%5D123"; assert(Percent::encode(percent_decoded) == percent_encoded); assert(Percent::decode(percent_encoded) == percent_decoded); assert(Percent::decode(Percent::encode(percent_decoded)) == percent_decoded); diff --git a/utility.hpp b/utility.hpp index b1b33e2..dfb7004 100644 --- a/utility.hpp +++ b/utility.hpp @@ -48,7 +48,7 @@ namespace SimpleWeb { for(auto &chr : value) { if(chr == ' ') result += '+'; - else if(chr == '!' || chr == '#' || chr == '$' || (chr >= '&' && chr <= ',') || (chr >= '/' && chr <= ';') || chr == '=' || chr == '?' || chr == '@' || chr == '[' || chr == ']') + else if(chr == '!' || chr == '#' || chr == '$' || (chr >= '&' && chr <= ',') || chr == '/' || chr == ':' || chr == ';' || chr == '=' || chr == '?' || chr == '@' || chr == '[' || chr == ']') result += std::string("%") + hex_chars[chr >> 4] + hex_chars[chr & 15]; else result += chr;