如何解决为什么字节数据解码为字符串无法用元素树解析?
我试图在将字节解码为“utf-8”作为字符串后解析从套接字接收到的 XML 数据,并使用 ET 创建一个元素。这是类中的代码部分。 (使用Python。元素树导入为ET)
data = self.sock.recv(1024)
print(data) #-------------->(This returns: b'\x02<V_ConnectionStatus><Version>0.4.0</Version><ServerId>Simulator</ServerId><Status>ConnectionAccepted</Status></V_ConnectionStatus>\x03'
os_encoding = locale.getpreferredencoding()
print(os_encoding) # -------------------> To know what is returned(This returns cp1252)
print(data.decode("utf-8")) #-------------->(This returns: <V_ConnectionStatus><Version>0.4.0</Version><ServerId>Simulator</ServerId><Status>ConnectionAccepted</Status></V_ConnectionStatus>)
ULSCdata= data.decode('utf-8')
#ULSCdata= data.decode('cp1252')
print(type(ULSCdata)) #-------------->(This returns:<class 'str'> )
try:
root = ET.fromstring(ULSCdata) # **everything except this line works**
print(root.tag)
except:
print('unable to parse your data')
所有时间我都在执行,除了打印语句执行。 有大开眼界吗?
解决方法
我终于找到了问题所在。我一定在解码 utf-8 后添加了 [1:-1]
ULSCdata= data.decode('utf-8')[1:-1]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。