用户名:
密 码:
为何选择我们
  • 7年优质服务经验
  • 10万用户的共同选择
  • 更低的价格更好的服务
  • CNNIC四星级认证服务商
  • 拥有正规经营许可证(ICP)
  • 先进的解析技术10分钟生效
  • 6组DNS负载均衡更快更稳定
  虚拟主机域名注册-常见问题其他问题 → 其他问题


[分享]Url编解码(C)_rs编解码 c代码 _ASP PHP中文URL编解码
作者:
/* 16进制字符表 */
static const char c2x_table[] = "0123456789ABCDEF";
/* 字符转16进制 */
static unsigned char *c2x(unsigned what,unsigned char *where)
{
    *where++ = '%';
    *where++ = c2x_table[what>>4];
    *where++ = c2x_table[what&0xf];
    return where;
}
/* 16进制转字符 */
static char x2c(const char *what)
{
    register char digit;

    digit = ((what[0] >= 'A') ? ((what[0] & 0xdf) - 'A') + 10 : (what[0] - '0'));
    digit *= 16;
    digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A') + 10 : (what[1] - '0'));
    return (digit);
}
/*
%\\^[]`+$,@:;/!#?=&.
不安全字符及特殊字符
*/
static int unsafechar(unsigned char ch)
{
unsigned char *p=&ch;

if(*p==' '||*p==''||*p=='%'||*p=='\\'||*p=='^'||*p=='['||*p==']'||*p=='`'\
  ||*p=='+'||*p=='$'||*p==','||*p=='@'||*p==':'||*p==';'\
  ||*p=='/'||*p=='!'||*p=='#'||*p=='?'||*p=='='||*p=='&'||*p=='.'||*p>0x80){
  return(1);
}
else{
  return(0);
}
}
/*
URL解码
*/
size_t url_decode(const char *src,char *dest)
{
char *cp=dest;

while(*src!='\0')
{
  if(*src=='+')
  {
   *dest++=' ';
  }
  else if(*src=='%')
  {
   int ch;
   ch=x2c(src+1);
   *dest++=ch;
   src+=2;
  }
  else
  {
   *dest++=*src;
  }
  src++;
}
*dest='\0'; 
return(dest-cp); 
}
/* 
URL编码 
*/
size_t url_encode(const char *src, char *dest)
{
char *cp=dest;

while(*src!='\0')
{
  unsigned char *p=(unsigned char*)src;
  if(*p==' '){
   *dest++='+';
  }
  else if(unsafechar(*p))
  {
   unsigned char w[3]={'\0'};
   c2x(*p,w);
   *dest=w[0];
   *(dest+1)=w[1];
   *(dest+2)=w[2];
   dest+=3;
  }
  else
  {
   *dest++=*p;
  }
  src++;
} 
*dest='\0';

return(dest-cp); 
}

int main()
{
char *s="中国人民@#$%^&*();/@";
char *d=NULL,*d1=NULL;
d=(char *)malloc(100);
d1=(char *)malloc(100);
memset(d,0,100);
memset(d1,0,100);
url_encode(s,d);
printf("%s\n",s);
printf("%s\n",d);
url_decode(d,d1);
printf("%s\n",d1);


特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。 



来源:
阅读:1839
日期:2012/4/2

【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:imail邮件服务器_imail安装教程_imail 的安装和设置_imail server
下一篇:sql2005安装_sql2005安装图解教程_sql2005安装步骤_怎样安装sql2005_
  >> 相关文章
  没有相关文章。