CLX C++ Libraries
Home >> uri

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

example_uri.cpp

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

Reference

  1. Diaspar Journal - URI エンコード(URL エンコード)