`
fp_moon
  • 浏览: 983090 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

c语言实现urlencode

 
阅读更多
#include <stdio.h> 
#include <string.h> 
 
/**
* @brief URLEncode 对字符串URL编码
*
* @param str 原字符串
* @param strSize 原字符串长度(不包括最后的\0)
* @param result 结果缓冲区的地址
* @param resultSize 结果缓冲区的大小(包括最后的\0)
*
* @return: >0:resultstring 里实际有效的长度
*            0: 解码失败.
*/ 
int URLEncode(const char* str, const int strSize, char* result, const int resultSize) 

    int i; 
    int j = 0;//for result index 
    char ch; 
 
    if ((str==NULL) || (result==NULL) || (strSize<=0) || (resultSize<=0)) { 
        return 0; 
    } 
 
    for ( i=0; (i<strSize)&&(j<resultSize); ++i) { 
        ch = str[i]; 
        if (((ch>='A') && (ch<'Z')) || 
            ((ch>='a') && (ch<'z')) || 
            ((ch>='0') && (ch<'9'))) { 
            result[j++] = ch; 
        } else if (ch == ' ') { 
            result[j++] = '+'; 
        } else if (ch == '.' || ch == '-' || ch == '_' || ch == '*') { 
            result[j++] = ch; 
        } else { 
            if (j+3 < resultSize) { 
                sprintf(result+j, "%%%02X", (unsigned char)ch); 
                j += 3; 
            } else { 
                return 0; 
            } 
        } 
    } 
 
    result[j] = '\0'; 
    return j; 

 
int main(int argc, char* argv[]) 

    char* src = argv[1]; 
    unsigned int srclength = strlen(src); 
    printf("src length: %d\n", strlen(src)); 
     
 
    char obj[100] = {0}; 
    URLEncode(src, srclength, obj, 100); 
 
    printf("obj: %s\n", obj); 
    printf("obj: %d\n", strlen(obj)); 
 
    return 0; 
分享到:
评论

相关推荐

    UrlEncode,标准C库形式

    某些C编译器没有包含utf8形式的url编解码函数,这里自己写了一个。 压缩包中包含.h文件,核心的.cpp文件以及编译好的.dll库。... 注意,该动态库使用时,要求目标机上安装有.net framework3.5 对于win7系统而言,可以...

    c语言实现aes ecb模式加密,可以和java,c#,obj-c互相 加,解密。包含base64编码,urlEncode编码

    c语言实现aes ecb模式加密,可以和java,c#,obj-c互相 加,解密。包含base64编码,urlEncode编码 注意,该算法里面的密文是转换成16进制的字串,如果不要16进制,可自行转换,内的函数。 vc6,vs2008,可编译。

    URL编码C语言实现.docx

    该实现提供了两个函数:URLEncode 和 URLDecode。URLEncode 函数用于将字符串进行 URL 编码,而 URLDecode 函数用于将字符串进行 URL 解码。两个函数都使用了缓冲区来存储结果,以便提高性能。 知识点6:应用场景 ...

    C语言通过IXMLHttpRequest以get或post方式发送http请求获取服务器文本或xml数据

    不过,通过使用Microsoft的MSXML库,C语言可以利用COM接口来实现类似的功能。本主题主要探讨如何在C语言中使用IXMLHttpRequest接口来发送HTTP GET和POST请求,获取服务器返回的文本或XML数据。 首先,我们需要了解...

    URL编码

    - `URLEncode.cpp`:实现了`URLEncode.h`中声明的函数或类的方法。这里会包含具体的编码逻辑,包括字符判断、转换为UTF-8、生成十六进制表示等步骤。 为了实现这些功能,C++可能使用了标准库中的`std::string`和`...

    loadrunner中处理url编码的方式,不支持中文

    从提供的文件名"URLEncode.h"和"URLUncode.h"来看,这似乎包含了用于URL编码和解码的头文件,它们可能是实现这一功能的关键。 编写这样的C代码,通常会涉及以下几个步骤: 1. **定义函数**:创建两个函数,一个用于...

    LoadRunner中转换字符串到URL编码

    通过理解上述内容,你可以在LoadRunner的C语言脚本中实现字符串到URL编码的转换,无论是通过编写自定义函数,还是利用提供的`code.exe`工具,都能有效地完成任务。同时,记得时刻关注代码的可读性和维护性,以便在...

    百度工程师讲PHP函数的实现原理及性能分析(三)

    - 包括strcmp、strncmp、strcasecmp和strncasecmp,它们在PHP中的实现与C语言有所不同,考虑到PHP字符串可能包含'\0',它们使用memcmp而非strcmp,这在某些情况下提高了效率。 9. **is_int和is_numeric**: - is_...

    基于PHP的影视资源采集抓取PHP版源码.zip

    3. **URL编码与解码**:在处理URL时,可能需要使用`urlencode`和`urldecode`函数来确保URL的正确性。 4. **异常处理**:使用try-catch语句来捕获和处理可能出现的错误,如网络连接问题、请求超时、无效的HTML结构等...

    基于PHP的一麦短网址源码清新版(支持SAE环境).zip

    它的语法吸收了C语言、Java和Perl的特点,利于学习,且具有丰富的函数库,使得开发过程更为高效。 在实际应用中,基于PHP的一麦短网址服务通常包含以下几个核心知识点: 1. **URL编码与解码**:短网址服务需要对...

    php生成二维码时出现中文乱码的解决方法

    $encodedUrl = urlencode($url); echo "$encodedUrl}' /&gt;"; } ``` 这里,我们使用了Google的图表API来生成二维码,但这个API并不支持直接处理中文字符,可能会导致乱码。 2. **PHP QR Code类库**: 这是一个...

    MyFll Microsoft Visual FoxPro设计的扩展库

    MyFll是专为Microsoft Visual FoxPro设计的扩展库,部分函数来自任明汉(RMH myF1论坛)前辈提供的myDll代码翻译而成,由于很多功能利用VFP处理比较烦锁,或无法实现,使用此库可有效解决VFP的弱项。部分与Win32Api...

Global site tag (gtag.js) - Google Analytics