static unsigned char char_to_hex( unsigned char x )
{
return (unsigned char)(x > 9 ? x + 55: x + 48);
}
static int is_alpha_number_char( unsigned char c )
{
if ( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') )
return 1;
return 0;
}
//url编码实现
void urlencode( unsigned char * src, int src_len, unsigned char * dest, int dest_len )
{
unsigned char ch;
int len = 0;
while (len < (dest_len - 4) && *src)
{
ch = (unsigned char)*src;
if (*src == ' ')
{
*dest++ = '+';
}
else if (is_alpha_number_char(ch) || strchr("-_.!~*'()", ch))
{
*dest++ = *src;
}
else
{
*dest++ = '%';
*dest++ = char_to_hex( (unsigned char)(ch >> 4) );
*dest++ = char_to_hex( (unsigned char)(ch % 16) );
}
++src;
++len;
}
*dest = 0;
return ;
}
//解url编码实现
unsigned char* urldecode(unsigned char* encd,unsigned char* decd)
{
int j,i;
char *cd = encd;
char p[2];
unsigned int num;
j=0;
for( i = 0; i < strlen(cd); i++ )
{
memset( p, '/0', 2 );
if( cd[i] != '%' )
{
decd[j++] = cd[i];
continue;
}
p[0] = cd[++i];
p[1] = cd[++i];
p[0] = p[0] - 48 - ((p[0] >= 'A') ? 7 : 0) - ((p[0] >= 'a') ? 32 : 0);
p[1] = p[1] - 48 - ((p[1] >= 'A') ? 7 : 0) - ((p[1] >= 'a') ? 32 : 0);
decd[j++] = (unsigned char)(p[0] * 16 + p[1]);
}
decd[j] = '/0';
return decd;
}
分享到:
相关推荐
对于 `urlencode` 和 `urldecode`,你可能需要自定义C++函数来实现这些功能,然后在C++代码中定义,并在桥接头文件中声明,使得Objective-C或Swift代码可以调用。 以下是一个简单的C++示例实现 `urlencode` 和 `url...
本文主要讨论如何在ASP中实现URLEncode和URLDecode这两个功能,以便正确地处理URL中的特殊字符和编码问题。 首先,URL编码(URLEncode)是为了在URL中传递非ASCII字符或特殊字符时避免产生错误。URL中不能包含某些...
针对这个问题,我们可以创建两个 JavaScript 函数:`js_urlencode` 和 `js_urldecode`,以实现与 PHP 相似的编码和解码功能。以下是一个基于UTF-8编码的实现: ```javascript // 1. JavaScript 实现的 urlencode ...
本文将深入探讨如何使用C++语言实现URL编码(UrlEncode)功能。URL编码是一种用于处理URL中特殊字符的技术,确保它们能在互联网上安全传输。在C++中实现这一功能涉及到对字符串的遍历、字符识别以及ASCII码与十六...
URL编码(UrlEncode)和解码(UrlDecode)通常用于将特殊字符转换为安全的格式,以便在网络请求中传输。这是因为某些字符在URL中具有特殊含义,如空格、#、&等,它们需要被替换为特定的百分比编码(%)来避免混淆。 ...
在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞不定,我post过去时是xml形式,由于乱码服务器端xml也解析不了或出错。于是在post前先把它编码,到...Function URLDecode(enStr) dim
在Python3中,将中文进行urlencode编码使用函数 urllib.parse.quote(string, safe='/', encoding=None, errors=None) 而将编码后的字符串转为中文,则使用 urllib.parse.unquote(string, encoding='utf-8', errors...
`urlencode`函数将字符串中的特殊字符转换为适合URL的格式,而`urldecode`则将经过`urlencode`编码的字符串还原。在某些特定场景下,如配合JavaScript的Ajax操作时,可能需要自定义这些函数来满足特定的编码和解码...
以下是一个简单的UrlDecode函数的实现过程,该函数通过遍历输入的URL编码字符串,按照UrlEncode的规则进行逆向操作,将编码后的十六进制数值转换回对应的字符。 ```vbscript Function URLDecode(enStr) Dim deStr ...
该实现提供了两个函数:URLEncode 和 URLDecode。URLEncode 函数用于将字符串进行 URL 编码,而 URLDecode 函数用于将字符串进行 URL 解码。两个函数都使用了缓冲区来存储结果,以便提高性能。 知识点6:应用场景 ...
1. **方法类型**:`HttpUtility.UrlEncode`和`HttpUtility.UrlDecode`是静态方法,而`Server.UrlEncode`和`Server.UrlDecode`是实例方法,需要通过`HttpServerUtility`类的实例(如`Page`类的`Server`属性)来调用。...
代码如下:‘================================================ ‘函数名:URLDecode ‘作 用:URL解码 ‘================================================ Function URLDecode(ByVal urlcode) Dim start,final,...
有时候可能会有这么一个需求,我在后台使用: 代码如下: HttpUtility.UrlEncode(str, System.Text.Encoding.UTF8); 将Url进行编码,前台JS需要使用这段内容,这时候就需要解码了: 代码 代码如下: /** * Url编码 **/ ...
相对应地,解码时也有`urldecode`和`rawurldecode`。这种设计可能给开发者带来困扰,因为需要根据实际场景选择合适的编码函数。 解决URL编码问题的关键在于理解各种编码函数的差异,并根据应用需求选择正确的方法。...
在完成基本要求(MFC编程基础)后实现了十种编码解码(base64encode、base64encode、char2hex、hex2char、URLencode、URLdecode、UTF8 2 Unicode、Unicode 2 UTF8、曼彻斯特、差分曼彻斯特),和八种加解密(DES加...
针对上述问题,我们可以编写一个自定义的解码函数`URLDecode`,该函数能够将经过编码的URL参数转换回原始的中文字符。下面将详细介绍此函数的实现细节。 #### 解码函数实现 ```vb Function URLDecode(enStr) Dim ...
std::string urlDecode(const std::string& input) { std::string decoded; decoded.reserve(input.size()); std::istringstream iss(input); int hex1, hex2; char c; while (iss >> std::skipws) { if (iss...
str=”+HttpUtility.UrlEncode(str) ,解码方式为HttpUtility.UrlDecode(Request.QueryString[“str”].ToString().Trim()) asp的Get方式传送为”webPage.aspx?str=”+server.urlencode(str) 两种编码不统一 解决方案...
然而,现代的ASP.NET框架提供了内置的HttpUtility.UrlEncode和HttpUtility.UrlDecode方法,这些方法更加高效和安全,建议在可能的情况下使用这些内置函数。但在旧的ASP项目中,自定义函数仍是一种实用的解决方案。