c语言进行urlencode编码,c语言实现urlencode

#include

#include

/**

* @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

ch = str[i];

if (((ch>='A') && (ch

((ch>='a') && (ch

((ch>='0') && (ch

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;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值