Chinaunix首页 | 论坛 | 博客
  • 博客访问: 176539
  • 博文数量: 15
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-06 20:00
文章分类

全部博文(15)

文章存档

2009年(2)

2008年(13)

我的朋友

分类:

2008-08-03 11:45:29

今天在接收一个ftp://abc:z%23xxx@exa.com/,直接放到ie浏览器中可以打开,放到leapftp中登录失败,仔细一看才发现,原来密码是已经按照url进行了编码,ftp client不能直接识别。

因为url中不能直接写入特殊字符,所以像空格,#等就需要进行url编码,编码的原则是,% 特殊字符的十六进制数, 如#的十六进制是23,所以#号在url中的表示是 %23.

编码:


def urlSpecialcharsEncode(c):
    return str(hex(ord(c))).replace("0x","%")


解码:
所以要算出%23对应的字符是什么,需要反过来。
(1) 23的十进制数35,
(2) 35对应的的ascii

在python中比较容易实现,只在两个方法:

 chr(int('23',16))  --- > #

其中,int(str, 16)  -  > 把16进制字符数字->10进制,
   chr(i)  --- > 对应的ascii  

 

def urlSpecialcharsDecode(str):
    return 
chr(int(str.replace("%',""),16))

阅读(759) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~