1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:57:44 +00:00

AK+LibWeb: Encode ' ' as '+' in application/x-www-form-urlencoded

This matches what the URL and HTML specifications ask us to do.
This commit is contained in:
Andreas Kling 2022-04-09 18:34:49 +02:00
parent 74241527d7
commit 3724ce765e
3 changed files with 12 additions and 5 deletions

View file

@ -403,11 +403,14 @@ void URL::append_percent_encoded_if_necessary(StringBuilder& builder, u32 code_p
builder.append_code_point(code_point);
}
String URL::percent_encode(StringView input, URL::PercentEncodeSet set)
String URL::percent_encode(StringView input, URL::PercentEncodeSet set, SpaceAsPlus space_as_plus)
{
StringBuilder builder;
for (auto code_point : Utf8View(input)) {
append_percent_encoded_if_necessary(builder, code_point, set);
if (space_as_plus == SpaceAsPlus::Yes && code_point == ' ')
builder.append('+');
else
append_percent_encoded_if_necessary(builder, code_point, set);
}
return builder.to_string();
}