Dekodierung von doppelt kodiertem utf8 in Python

Ich habe ein Problem mit Zeichenfolgen, die ich von einem meiner Clients über xmlrpc erhalte. Er sendet mir utf8-Zeichenfolgen, die zweimal codiert sind :( Wenn ich sie also in Python erhalte, habe ich ein Unicode-Objekt, das noch einmal decodiert werden muss, aber offensichtlich lässt Python das nicht zu. Ich habe meinen Client bemerkt, wie ich es brauche Umgehung des Problems, bevor er es behebt.

Roher String aus dem TCP-Dump:

<string>Rafa\xc3\x85\xc2\x82</string>

dies wird umgewandelt in:

u'Rafa\xc5\x82'

Das Beste, was wir bekommen, ist:

eval(repr(u'Rafa\xc5\x82')[1:]).decode("utf8") 

Dies führt zu einer korrekten Zeichenfolge:

u'Rafa\u0142' 

Dies funktioniert jedoch ist hässlich wie die Hölle und kann nicht in Produktionscode verwendet werden. Wenn jemand weiß, wie er dieses Problem besser lösen kann, schreibe bitte. Danke, Chris

Antworten auf die Frage(3)

Ihre Antwort auf die Frage