Moin!
ich möchte mit den Daten aus einem HTML-Form eine XML schreiben.
Und zwar mit UTF-8. Die Seite mit dem Form ist nun kiene UTF-8
Seite und lässt sich auch nicht als sollche definieren.
Doch, das muss gehen, alles andere führt nur in die Irre und sorgt für Datenverlust-
Unter
Mozilla läuft das ganze seit dem ich im Form
accept-charset="utf-8" geschrieben habe. Mit dem IE allerdings
nicht ;(
accept-charset ist ganz großer Mist, weil die Browser sich nicht dran halten. Diese Lösung kannst du direkt wieder vergessen.
Alles muss UTF-8 sein, nur dann funktioniert es: Die Seite mit dem Formular, die Charset-Definition im HTTP-Header, die Charset-Angabe im <meta>, und dann gerne auch noch accept-charset.
Wenn irgendwas davon nicht UTF-8 ist, funktioniert es nicht.
Da meckert beim Auslesen php einen Parser-Error an, weil lauter
ü und ö unmaskiert in der XML stehen.
Unmaskiert ist nicht das Problem. Sie sind aber falsch codiert - das ist das Problem.
Wie mache ich aus einem 'ö' in $_POST ein 'ö'. Das mag der
XML-Parser nämlich leiden.
Du hast kein "ö", sondern du hast ein "ö" als ISO-8859-1, brauchst aber eines in UTF-8. Es führt aber zu keiner Lösung, wenn du das jetzt im IE umcodierst, denn du kannst dich einfach nicht drauf verlassen, dass nicht irgendein Browser noch auf ganz andere Codierungsideen kommt - und du kannst auch nicht mit 100% Sicherheit erkennen, welche Codierung der Browser denn verwendet.
Beseitige das Problem an der Wurzel: Liefere die Formularseite UTF-8-codiert aus!
- Sven Rautenberg