urlencode是一个函数,可将字符串以URL编码,用于编码处理。
URL编码(URL encoding),也称作百分号编码(Percent-encoding), 是特定上下文的统一资源定位符 (URL)的编码机制。
适用于统一资源标识符(URI)的编码,也用于为"application/x-www-form-urlencoded" MIME准备数据, 因为它用于通过HTTP的请求操作(request)提交HTML表单数据。
int UrlEncode(const char *str, char *result, const int max_length)
{
int i;
int j = 0;
char ch;
int strSize = strlen(str);
if ((str == NULL) || (result == NULL) || (strSize <= 0) || (max_length <= 0))
{
return 0;
}
for (i = 0; (i < strSize) && (j < max_length); ++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 < max_length)
{
sprintf(result + j, "%%%02X", (unsigned char)ch);
j += 3;
}
else
{
return 0;
}
}
}
result[j] = '\0';
return j;
}
str是待加密字符串,result是解密结果,max_length是待加密字符串长度。