Helge: mit xml, perl und uft-8 voll gegen die wand

Beitrag lesen

hi ihr,
ich sitze in der patsche - vielleicht hat ja jemand _die_ idee? ;-)
ich schreibe ein perlscript, das daten (freien text) per
formulareingabe eingegennimmt, diese als xml-datei ablegt und
per XML::Parser wieder einliest (zwecks ausgabe, aber auch
nachtraeglichem bearbeiten). das script muss auf mehreren servern
laufen, die mit verschiedenen versionen von perl (von 5.00x bis
5.6.x), expat und XML::Parser ausgestattet sind, ohne dass ich
darauf einfluss nehmen kann - mit anderen worten, ich darf mich
immer am kleinsten nenner entlanghangeln. ;-)
jetzt bin ich ueber ein dummes problem gestolpert: XML::Parser
spuckt alles, was er aufgesogen hat, stoisch als utf-8 wieder
aus. macht ja nix, dachte ich, wenn die formularseiten auch
utf-8-codiert sind, landet in den xml-dateien ebenfalls nur
unicode, und alles ist gut ... stimmt auch, aber nur solange, wie
nicht jemand einen wirklich alten browser nimmt, der kein
unicode kann, und dort froehlich seine umlaute reinhackt. dieser
dumme browser (z.b. netscape 3, ja lacht nur, dieses script
laueft u.a. im universitaeren kontext, wo solche monster noch
auftauchen -) sendet seine daten als ascii bzw. ISO-8859, und
das script schreibt diesen ascii-quark in eine xml-datei, in
der ganz oben ganz deutlich 'utf-8' prangt => der parser verweigert
beim naechstenmal seinen dienst, weil die wellformedness dahin
ist. shit. die alternative, naemlich die xml-dateien gleich
als ISO-8859 laufen zu lassen, haut auch nicht hin: wenn sich
der parser den inhalt gegriffen hat, kommt wieder utf-8 beim
browser an, und beim zurueckschreiben landet unicode in einer
datei, die ISO zu sein meint => parser ist sauer.
je nach browser den richtigen zeichensatz zu spezifizieren
scheitert daran, dass man unmoeglich jeden browser abfangen
kann - aussdem muesste ich dann leute mit nicht-unicode-
faehigen browsern im regen stehen lassen, wozu ich kaltlaechelnd
bereit waere, aber: sowas geht nicht an der uni (nur so nebenbei:
bei uns wird immer noch der ns4 auf brandneuen rechnern
installiert, wegen der political correctness ...*seufz*), wie
so vieles anderes auch nicht :-).
also: gibt es den goldenen ausweg? ein script, das ISO in
unicode verwandelt und andersherum, ohne ein modul zu sein (das
ich nicht installieren darf)? den genialen trick?

viele gruesse

helge