ich hab jetzt schon einige Einträge zu XML, Unicods und Umlaute gelesen, aber ich bekomm mein Prolbem trotzdem nicht in den Griff.
Ich hab eine GUI in wxPython programmiert. Von der ich die vom User eingegebenen Daten in einem xml-File speicher. Zum speichern wandle ich den unicode-String von der GUI in UTF-8 um. Dabei wird mir z. B. ein ä in À umgewandelt.
Gibt es eine Möglichkeit das im xml-File das ä als ä dargestellt wird, da das xml-File auch mal direkt durch den User gelesen wird und das lesen durch À usw. etwas erschert wird.
Zum Testen hab ich folgendes kleines Script verwendet, evtl. mach ich einen Fehler den ich übersehe.
Code: Alles auswählen
# -*- coding: ISO-8859-1 -*-
import xml.dom.minidom as dom
if __name__=='__main__':
str_path = 'C:\\test.xml'
a = u'Test: äää'
b = a.encode('utf-8')
# xml erstellen
d = dom.Document()
r = dom.Element('test')
r.appendChild(d.createTextNode(b))
d.appendChild(r)
file_xml = file(str_path, 'w')
d.writexml(file_xml, '', '\t', '\n')
file_xml.close()
##
## das erstellte xml:
##<?xml version="1.0" ?>
##<test> Test: ÀÀÀ </test>
##
# xml auslesen
tree = dom.parse(str_path)
tag = tree.firstChild
c = tag.firstChild.data
print type(c)
d = c.encode('iso-8859-15')
print d #= Test: äää
Ich sag schon mal danke.
Gruß
Markus
PS: Und warum kann ich den Unicod-String den ich von der GUI erhalte nicht direkt ins xml schreiben, xml besteht ja auch aus Unicodes.