为什么解码为字符串的字节数据无法用元素树解析?

Why would bytes data decoded to string unable to parse with Element tree?

我试图在将字节解码为 'utf-8' 后解析从套接字接收的 XML 数据作为字符串,并使用 ET 创建一个元素。这是class中的部分代码。 (使用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]