Declrations
namespace uri {
template <class Ch, class Tr>
std::basic_string<Ch, Tr> encode(const std::basic_string<Ch, Tr>& s);
template <class CharT>
std::basic_string<CharT> encode(const CharT* s);
template <class Ch, class Tr>
std::basic_string<Ch, Tr> decode(const std::basic_string<Ch, Tr>& s);
template <class CharT>
std::basic_string<CharT> decode(const CharT* s);
}
Overview
uri::encode,uri::decode は,URI の encode/decode を行うための関数です. Diaspar Journal - URI エンコード(URL エンコード)を参考に実装しています(JavaScript の encodeURI 相当).
Example
#include <iostream>
#include <string>
#include "clx/uri.h"
#include "clx/html.h"
int main(int argc, char* argv[]) {
if (argc < 2) return -1;
std::string src(argv[1]);
std::string dest = clx::uri::encode(src);
std::cout << "encode: " << dest << std::endl;
std::cout << "decode: " << clx::uri::decode(dest) << std::endl;
std::cout << "escape+encode: " << clx::uri::encode(clx::html::escape(src))
<< std::endl;
return 0;
}