| 59 | } // namespace |
| 60 | |
| 61 | std::string UriEscape(std::string_view s) { |
| 62 | if (s.empty()) { |
| 63 | // Avoid passing null pointer to uriEscapeExA |
| 64 | return std::string(s); |
| 65 | } |
| 66 | std::string escaped; |
| 67 | escaped.resize(3 * s.length()); |
| 68 | |
| 69 | auto end = uriEscapeExA(s.data(), s.data() + s.length(), &escaped[0], |
| 70 | /*spaceToPlus=*/URI_FALSE, /*normalizeBreaks=*/URI_FALSE); |
| 71 | escaped.resize(end - &escaped[0]); |
| 72 | return escaped; |
| 73 | } |
| 74 | |
| 75 | std::string UriUnescape(std::string_view s) { |
| 76 | std::string result(s); |