Merge "libutil: fix non-ASCII chars in URL encoding" into main

This commit is contained in:
Emilia Bopp 2024-11-11 14:08:37 +00:00 committed by Gerrit Code Review
commit 8a9094303b
2 changed files with 7 additions and 2 deletions

View file

@ -104,7 +104,7 @@ std::string percentEncode(std::string_view s, std::string_view keep)
|| keep.find(c) != std::string::npos) || keep.find(c) != std::string::npos)
res += c; res += c;
else else
res += fmt("%%%02X", (unsigned int) c); res += fmt("%%%02X", 0xff & (unsigned int) c);
return res; return res;
} }

View file

@ -303,7 +303,6 @@ namespace nix {
ASSERT_EQ(d, s); ASSERT_EQ(d, s);
} }
/* ---------------------------------------------------------------------------- /* ----------------------------------------------------------------------------
* percentEncode * percentEncode
* --------------------------------------------------------------------------*/ * --------------------------------------------------------------------------*/
@ -336,4 +335,10 @@ namespace nix {
ASSERT_EQ(d, s); ASSERT_EQ(d, s);
} }
TEST(percentEncode, utf8Input) {
std::string s = percentEncode("ä");
std::string d = "%C3%A4";
ASSERT_EQ(d, s);
}
} }