• 技术文章 >常见问题 >Python常见问题

    python如何去除字符串中不可见字符(\x00)

    yangyang2020-04-07 14:09:53原创14702

    问题:无法用json.loads()解析数据。

    现象:但是将收到的数据复制粘贴成字符串就可以接续出来。纠结了很久才发现,两个长度不一样。

    str是看不出来的,于是就转换成了bytes,发现

    收到的数据为:

    <class ‘bytes’>
    b’\r\n\r\n\x00\x00\x00\x00\x00\x00\x00\x00{\r\n\t"author": “app”\r\n}’

    而复制出来的字符串没有\x00

    原代码

    self.data = self.request.recv(1024).decode('UTF-8', 'ignore').strip()

    其中strip()只能去掉\r,\\n,\t,无法去掉\x00。

    解决办法:

    在源码后添加strip(b'\x00'.decode())即可。

    self.data = self.request.recv(1024).decode('UTF-8', 'ignore').strip().strip(b'\x00'.decode())

    Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

    注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

    strip()方法语法:

    str.strip([chars]);

    推荐学习:《Python教程

    专题推荐:python
    上一篇:python运行速度快还是php快 下一篇:python(x,y)是什么

    相关文章推荐

    • Python中None如何判断• Python运行程序如何不显示黑框• python怎么去掉“\n”

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网