极客小将

您现在的位置是:首页 » python编程

资讯内容

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

极客小将2021-01-14-
简介问题:无法用json.loads()解析数据。现象:但是将收到的数据复制粘贴成字符串就可以接续出来。纠结了很久才发现,两个长度不一样。str是看不出来的,于是就转换成了bytes,发现收到的数据为:<class ‘bytes’>b’ x00x00x00x0

Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

问题:无法用json.loads()解析数据。Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

现象:但是将收到的数据复制粘贴成字符串就可以接续出来。纠结了很久才发现,两个长度不一样。Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

str是看不出来的,于是就转换成了bytes,发现Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

收到的数据为:Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

<class ‘bytes’> b’ x00x00x00x00x00x00x00x00{ "author": “app” }’

而复制出来的字符串没有x00Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

原代码Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

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

其中strip()只能去掉,\n, ,无法去掉x00。Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

解决办法:Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

在源码后添加strip(b'x00'.decode())即可。Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

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

python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

strip()方法语法:Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

str.strip([chars]);

推荐学习:《python教程》Krl少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

网友点评

共有5条评论来说两句吧...