Frage

Ich verwende Python 2.6.2 des xml.etree.cElementTree ein XML-Dokument zu erstellen:

import xml.etree.cElementTree as etree
elem = etree.Element('tag')
elem.text = (u"Würth Elektronik Midcom").encode('utf-8')
xml = etree.tostring(elem,encoding='UTF-8')

Am Ende des Tages, xml wie folgt aussieht:

<?xml version='1.0' encoding='UTF-8'?>
<tag>W&#195;&#188;rth Elektronik Midcom</tag>

Es sieht aus wie tostring die Codierung Parameter ignoriert und ‚ü‘ in eine andere Zeichencodierung codiert ( ‚ü‘ eine gültige utf-8-Kodierung ist, bin ich ziemlich sicher).

Jede Beratung, was ich falsch mache würde sehr geschätzt werden.

War es hilfreich?

Lösung

Sie kodieren den Text zweimal. Versuchen Sie folgendes:

import xml.etree.cElementTree as etree
elem = etree.Element('tag')
elem.text = u"Würth Elektronik Midcom"
xml = etree.tostring(elem,encoding='UTF-8')

Andere Tipps

etree.tostring(elem, encoding=str)

wird str zurück, aber binary nicht in Python 3

  

Sie können auch auf ein Unicode-String ohne Erklärung serialise durch           die Funktion als unicode Codierung vorbei (oder in py3 str),           oder der Name 'Unicode'. Dadurch ändert sich der Rückgabewert von einem Byte           String in einen unverschlüsselte Unicode-String.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top