zoukankan      html  css  js  c++  java
  • 用c++实现urlencode

       在php里面实现urlencode是异常简单的事情,但是,想在c++中实现这个功能,可能得自己开发了。
           基于这个需要,我在网上逛了一趟,找到了一个比较好的实现,并封装成一个小工具,大家以后就方便了。   
    #ifndef __H_CURL_ENCODE_H__
    #define __H_CURL_ENCODE_H__
    /*
       URLEncode是这样编码的
       1。数字和字母不变。
       2。空格变为"+"号。
       3。其他被编码成"%"加上他们的ascii的十六进制,规律是这样的
       比如“啊”字 Ascii的十六进制是B0A1——>%B0%A1(Note:它是每个字节前加个%)。
     */
     
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <ctype.h>
    #include <stdlib.h>
     
    using namespace std;
     
    namespace ctool
    {
       
        typedef unsigned char BYTE;
     
        inline BYTE toHex(const BYTE &x)
        {
            return x > 9 ? x + 55: x + 48;
        }
     
        inline string URLEncode(const string &sIn)
        {
        // cout << "size: " << sIn.size() << endl;
            string sOut;
            for( size_t ix = 0; ix < sIn.size(); ix++ )
            {      
                BYTE buf[4];
                memset( buf, 0, 4 );
                if( isalnum( (BYTE)sIn[ix] ) )
                {      
                    buf[0] = sIn[ix];
                }
                else if ( isspace( (BYTE)sIn[ix] ) )
                {
                    buf[0] = '+';
                }
                else
                {
                    buf[0] = '%';
                    buf[1] = toHex( (BYTE)sIn[ix] >> 4 );
                    buf[2] = toHex( (BYTE)sIn[ix] % 16);
                }
                sOut += (char *)buf;
            }
            return sOut;
        };
    }
    #endif

    转载自:http://blog.csdn.net/metago/article/details/2098252
  • 相关阅读:
    概率面试题
    机器学习概率题总结(转载)
    筛素数以及判断数是否是素数
    腾讯2019正式批春笔试题
    推荐系统架构
    文本表示与匹配
    CTR预估经典模型总结
    spark运行原理
    leetcode 字符串动态规划总结
    无向图的邻接矩阵创建代码以及深度遍历广度遍历
  • 原文地址:https://www.cnblogs.com/xieyuan/p/3787470.html
Copyright © 2011-2022 走看看