美文网首页
python2->3编码格式坑

python2->3编码格式坑

作者: yytester | 来源:发表于2019-04-01 10:27 被阅读0次

    两年前用HttpRunner框架做了接口自动化,最近再次用发现改动很大,特别是从python2升到了python3,字节和字符对应关系的改变,对曾经用到的加密模块产生了问题.

    image.png image.png

    跑去几个社区提问题也没靠谱回复:segment , stackflow

    最开始以为是Crypto库不支持python3,因为同样的代码,python2运行并不报错.
    后来一边继续用python2做自动化工程,一边每天留出一点时间解决python3的这个加密问题.
    直到上周发现继续使用python2的话,框架没法打印出带中文的自动化测试报告,除非我又去改框架代码.....
    没办法了..一定要解决python3的问题,不然类似问题会越堆越多.

    拷贝了一份已有工程,换到另一台笔记本,避免系统自身环境问题干扰.
    两台电脑的两份代码, 对比着一行一行修改,一句一句调试打印...
    修改了加密代码,上周五开始没报编码问题了,但是登录返回的是9999网络错误, 看服务器后台日志,是无法解析加密代码.

    看来修改加密代码处理了加密问题,但是服务器那边又无法解析了.

    刚才看修改前的加密原版代码,突然发现了问题所在....

    其实只需要把这行
    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
    改成
    pad = lambda s: (s + ((BS - len(s) % BS) * chr(BS - len(s) % BS))).encode(encoding="utf-8")

    不需要修改加密代码,只把最后的格式改一下就可以了....

    image.png

    相关文章

      网友评论

          本文标题:python2->3编码格式坑

          本文链接:https://www.haomeiwen.com/subject/qnembqtx.html