Fixes Percent::encode issue mentioned in #184
This commit is contained in:
parent
aa030950bb
commit
bbbf350693
2 changed files with 3 additions and 3 deletions
|
|
@ -121,8 +121,8 @@ int main() {
|
||||||
assert(hash("tesT") == hash("test"));
|
assert(hash("tesT") == hash("test"));
|
||||||
assert(hash("test") != hash("tset"));
|
assert(hash("test") != hash("tset"));
|
||||||
|
|
||||||
auto percent_decoded = "testing æøå !#$&'()*+,/:;=?@[]";
|
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%5D";
|
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::encode(percent_decoded) == percent_encoded);
|
||||||
assert(Percent::decode(percent_encoded) == percent_decoded);
|
assert(Percent::decode(percent_encoded) == percent_decoded);
|
||||||
assert(Percent::decode(Percent::encode(percent_decoded)) == percent_decoded);
|
assert(Percent::decode(Percent::encode(percent_decoded)) == percent_decoded);
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ namespace SimpleWeb {
|
||||||
for(auto &chr : value) {
|
for(auto &chr : value) {
|
||||||
if(chr == ' ')
|
if(chr == ' ')
|
||||||
result += '+';
|
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];
|
result += std::string("%") + hex_chars[chr >> 4] + hex_chars[chr & 15];
|
||||||
else
|
else
|
||||||
result += chr;
|
result += chr;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue