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; }