我有一些网络程序代码。和它的
def dataReceived(self, data)
print(f"Received quote: {data}")
self.transport.loseConnection()
此功能正在打印
Received quote: b'\x00&C:\\Users\\.pycharm2016.3\\config\x00&C:\\users\\pycharm\\system\x00\x03--'
我如何更改代码以解决此问题?
我想我知道发生的事情是打印出来的是以字节为单位的代码,需要将其转换为字符串,但我是否在程序的服务器端或客户端执行此操作?
我写的时候
print(f"receivedquote: {data}".decode('utf-8')
没有做到这一点。我收到很多错误。我怎样才能更好地提出这个问题来找到解决方案?
答案 0 :(得分:1)
解码实际数据:
data = data.decode('utf-8')
此时,data
是一个Python Unicode字符串,您可以打印,搜索,切片等。
(您的数据并不特别像UTF-8,但我不会猜测它;它也不是明显不是UTF-8。)
在接收到字节字符串后立即转换为Unicode通常是一个好主意,并让程序的其余部分对字符串进行操作。如果你需要编码回字节,那么在数据离开你的程序之前,只需在周边进行编码。 (Ned Batchelder称这个" Unicode夹心。")