/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
android-951
coding/url_encode.hpp
47 строк
899 B
tatiana-yan
[std] Use new include style for coding, fixes.
12 апр 2019, 12:56
12 апр 2019, 12:56
c198137
Код
Авторство
О чём код?
#pragma once #include "coding/hex.hpp" #include <string> inline std::string UrlEncode(std::string const & rawUrl) { size_t const count = rawUrl.size(); std::string result; result.reserve(count); for (size_t i = 0; i < count; ++i) { char const c = rawUrl[i]; if (c < '-' || c == '/' || (c > '9' && c < 'A') || (c > 'Z' && c < '_') || c == '`' || (c > 'z' && c < '~') || c > '~') { result += '%'; result += NumToHex(c); } else result += rawUrl[i]; } return result; } inline std::string UrlDecode(std::string const & encodedUrl) { size_t const count = encodedUrl.size(); std::string result; result.reserve(count); for (size_t i = 0; i < count; ++i) { if (encodedUrl[i] == '%') { result += FromHex(encodedUrl.substr(i + 1, 2)); i += 2; } else result += encodedUrl[i]; } return result; }