python url编码解码_python 实现 urlencode 与 urldecode (中文及特殊字符编解码)

这里说的urlencode非python自带的urlencode是与

初学python 风格较烂 勿喷。

# -*- coding: UTF-8 -*-

#编码

def urlencode_pl(inputs_str):

len_str=len(inputs_str)

if str=="" or len_str<=0:

return ""

index_j=0

index_i=0

result_end=""

for index_i in range(0,len_str):

index_sb=index_i+1

chs=inputs_str[index_i:index_sb]

if (chs>='A' and chs<'Z') or (chs>='a' and chs<'z') or (chs>='0' and chs<'9'):

if result_end=="":

result_end=chs

else:

result_end+=chs

elif chs==' ':

result_end+='+'

elif chs=='.' or chs=='-' or chs=='_' or chs=='*':

result_end+=chs

else:

result_end='%s%%%02X' % (result_end,ord(chs))

return result_end

#解码

def urldecode_pl(srcstr):

dststr=""

leng=len(srcstr)

temp1=""

temp2=""

i=0;

while i

temp1="\0";

temp2="\0";

if(srcstr[i:i+1]!="%" and srcstr[i:i+1]!="+"):

dststr=dststr+srcstr[i:i+1];

i=i+1;

continue

elif(srcstr[i:i]=="+"):

dststr=dststr+" ";

i=i+1;

continue

temp1=srcstr[i+1:i+2];

temp2=srcstr[i+2:i+3];

sb1=0;

sb2=0;

if(cmp(temp1,"A")>=0):

sb1=7;

if(cmp(temp1,"a")>=0):

sb2=32;

temp1=ord(temp1)-48-sb1-sb2

sb1=0;

sb2=0;

if(cmp(temp2,"A")>=0):

sb1=7;

if(cmp(temp2,"a")>=0):

sb2=32;

temp2=ord(temp2)-48-sb1-sb2

dststr=dststr+chr(temp1*16+temp2);

i=i+3;

return dststr;

#main函数

if __name__ == '__main__':

strs="sanya.ganji.com/huangye/a3/s/c/_大众"

print strs

str2=urlencode_pl(strs);

print str2;

str3=urldecode_pl(str2)

print str3;

str4=urldecode_pl(strs)

print str4

运行 python XX.py

结果如下:

原始字符串:sanya.ganji.com/huangye/a3/s/c/_大众 编码字符串:sanya.ganji.com%2Fhuangye%2Fa3%2Fs%2Fc%2F_%E5%A4%A7%E4%BC%97 编码解码字符串:sanya.ganji.com/huangye/a3/s/c/_大众

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值