CLX C++ Libraries - uri
Author: clown

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 エンコード）