如何在此函数中将数据从字节更改为字符串?

时间:2018-01-03 17:50:57

标签: python-3.x networking unicode twisted

我有一些网络程序代码。和它的

def dataReceived(self, data)
    print(f"Received quote: {data}") 
    self.transport.loseConnection()

此功能正在打印

Received quote: b'\x00&C:\\Users\\.pycharm2016.3\\config\x00&C:\\users\\pych‌​arm\\system\x00\x03-‌​-'

我如何更改代码以解决此问题?

我想我知道发生的事情是打印出来的是以字节为单位的代码,需要将其转换为字符串,但我是否在程序的服务器端或客户端执行此操作?

我写的时候

print(f"receivedquote: {data}".decode('utf-8')

没有做到这一点。我收到很多错误。我怎样才能更好地提出这个问题来找到解决方案?

1 个答案:

答案 0 :(得分:1)

解码实际数据:

data = data.decode('utf-8')

此时,data是一个Python Unicode字符串,您可以打印,搜索,切片等。

(您的数据并不特别像UTF-8,但我不会猜测它;它也不是明显不是UTF-8。)

在接收到字节字符串后立即转换为Unicode通常是一个好主意,并让程序的其余部分对字符串进行操作。如果你需要编码回字节,那么在数据离开你的程序之前,只需在周边进行编码。 (Ned Batchelder称这个" Unicode夹心。")