This is a bug in our http_listener. Looks like the uri in http_request has been encoded twice by our implementation.
We will fix this for our next release. Meanwhile, one workaround that you can try is to decode the URI (twice to get the original unencoded URI string):
auto uri_str = request.relative_uri().to_string(); // Get the relative_uri: Due to a bug, this has been encoded twice.
auto str1 = uri::decode(uri_str); // Get the original encoded relative uri
auto str2 = uri::decode(str1); // Get the original unencoded relative uri
Hope this helps! Thank you for reporting this issue.