python编程中的编码和解码问题

在编程中,对编码和解码感到困惑,经常会莫名其妙的出现一些问题,根据需要解决的问题,有以下几种情形:

1、在python2.7以下版本中,unicode和string的转换问题。对于一个变量v,是不是因为此产生的问题,可以看一下type(v),看其类型是不是str。如果不是,需用v.encode('utf-8')转换。

2、需要通过网络传输数据,所要传的数据要求asc码,所以需要转换。python的base64模块可以实现这种转换。将数据d编码和解码:

    import base64

    #编码

    d_encode=base64.urlsafe_b64encode(d)

    #解码

    d_decode=base64.urlsafe_b64decode(d_encode)

这里采用了安全方式。还有一个问题就是,有些编码后的位数不是4的倍数,需要用'='补足,但这样在网络传输时会出现问题,因此需要采取一些方法,在传输前去掉'=',接收后再补足。可简单编两个函数实现。

    #传输前去'='

    def before_send(send_str):

        reval=send_str.strip('=')

        return reval

    #传输后补足'='

    def after_send(accept_str):

       if len(accept_str)%4>0:

           addmuch=4-len(accept_str)%4

       else:addmuch=0

        reval=accept_str+'='*addmuch

        return reval

这样转换后,就没问题了。无论是从服务器到客户端还是从客户端到服务器,只要发送前用before_send,发送后用after_send,用了这两个函数后,就可以了。

 

转载于:https://my.oschina.net/u/2282638/blog/874714

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值