c语言实现url编码源码,URL encode 与 URL decode 的C语言实现

本文提供了C语言实现的URL编码和解码函数,包括`php_url_encode`和`php_url_decode`。代码源自PHP,仅保留了这两个核心功能。URL编码遵循特定规则,如保留字母、数字、特定符号不变,将空格转为加号,其他字符使用百分号进行编码。提供的示例代码还包含了主函数`main`,用于演示编码和解码过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文代码为从PHP代码中修改而来,只保留了2个函数。

int php_url_decode(char *str, int len);

char *php_url_encode(char const *s, int len, int *new_length);

URL编码做了如下操作:

字符"a"-"z","A"-"Z","0"-"9",".","-","*",和"_" 都不被编码,维持原值;

空格" "被转换为加号"+"。

其他每个字节都被表示成"%xy"格式的由3个字符组成的字符串,编码为UTF-8。

#include

#include

#include

#include

#include

static unsigned char hexchars[] = "0123456789ABCDEF";

static int php_htoi(char *s)

{

int value;

int c;

c = ((unsigned char *)s)[0];

if (isupper(c))

c = tolower(c);

value = (c >= ‘0‘ && c <= ‘9‘ ? c - ‘0‘ : c - ‘a‘ + 10) * 16;

c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值