Det: IE5 liefert Unicode statt ISO-8859-1 in Textareas

Hi Forum,

ich habe ein Problem mit einer Applikation.

Dia Applikation verwendet eine Oracle DB un den Oracle Application Server (Apache Listener mit modplsql Modul).

In die Datenbank werden Texte aus Quark über eine Schnittstelle importiert. Dabei kommen auch Sonderzeichen z.B. chr(132) chr(147)
obere und untere Anführungszeichen in die DB.
Über die Webapplikation können die importierten Texte nachbearbeitet werden.
Die Texte werden dazu in einer Textarea angezeigt, wie sie aus der DB kommen (also auch chr(132) und chr(147). Das HTML Dokument hat CONTENT="text/html; charset=iso-8859-1" als Content-type gesetzt.

Jetzt das Problem:
Wenn die Daten vom IE5 zurückgeschickt werden, sind die chr(132) und chr(147) Zeichen als Unicode &#8222 und &#8220 codiert.

Wenn das ganze mit Netscape 4.7 oder mozilla 1.0 bearbeitet wird,
dann werden die Zeichen nicht verändert.
Ich weiß daß das mit den Sonderzeichen nicht sauber ist, da in ISO-8859-1 nicht codiert.

Aber (leider) hats bisher mit den alternativen Browsern funktioniert.

Ich könnte ja für die Internet Applikationen damit leben, dass diese Zeichen als Unicodes in der DB abgelegt werden, jedoch werden die Texte auch als XML exportiert und anschließend über saxon mit XSL für einen Kunden in ein proprietäres Format transformiert. Dieses Format verwendet wiederum ISO-8859-1 als encoding. Dort funktioniert
dann die Rücktransformation nicht mehr, da die Unicodes nicht mehr in die Sonderzeichen zurückgewandelt werden können.

Hat jemand ähnliche Probleme und evtl. schon eine Lösung?
An welcher Stelle leigt denn eigentlich der Fehler? Am IE5 an den Netscapes (mozillas)?

Sonst muß ich wohl überlegen die Zeichen vor dem Update in der DB wieder zurückwandeln oder das ganze sauber zu machen und alle Sonderzeichen in Unicode codieren, die Schnittstellen ändern....

Danke schon mal
Det

  1. In die Datenbank werden Texte aus Quark über eine Schnittstelle importiert. Dabei kommen auch Sonderzeichen z.B. chr(132) chr(147) obere und untere Anführungszeichen in die DB.
    Über die Webapplikation können die importierten Texte nachbearbeitet werden.
    Die Texte werden dazu in einer Textarea angezeigt, wie sie aus der DB kommen (also auch chr(132) und chr(147). Das HTML Dokument hat CONTENT="text/html; charset=iso-8859-1" als Content-type gesetzt.

    Jetzt das Problem:
    Wenn die Daten vom IE5 zurückgeschickt werden, sind die chr(132) und chr(147) Zeichen als Unicode &#8222 und &#8220 codiert.

    Ich weiß daß das mit den Sonderzeichen nicht sauber ist, da in ISO-8859-1 nicht codiert.

    Naja, warum wunderst Du Dich dann? Wenn Du Zeichen in ein Textfeld setzt, daß das Textfeld garnicht darstellen kann bzw. darf, dann ist es doch nicht übermäßig merkwürdig, daß da was anderes zurückkommt.

    Hat jemand ähnliche Probleme und evtl. schon eine Lösung?
    An welcher Stelle leigt denn eigentlich der Fehler? Am IE5 an den Netscapes (mozillas)?

    Die Behandlung von Zeichen außerhalb des ASCII-Bereichs (0-127) ist bei Netscape 6+ ein rechtes Durcheinander, das schon damit beginnt, daß Windows-Zeichensatz und iso-1 vermischt werden.

    Ob nun der IE oder Netscape einen Fehler macht, kann man aber IMHO garnicht genau festlegen, denn das Problem beginnt schon vorher. Wie heißt es so schön: "Garbage in, garbage out" :)

    Du solltest die Geschichte also an der Wurzel angehen: Verwende nur Zeichen, die auch wirklich im Standard festgelegt sind. Wenn Quark Quark ausgibt, dann wäre es sinnvoll, diesen Quark gleich am Anfang zu eliminieren.
    Das Problem mit dem proprietären Format habe ich allerdings nicht ganz verstanden. Hält sich dieses Format strikt an iso-1? Wenn's so ist und aus diesem Format auch noch zurückgelesen werden muß, dann bleibt Dir garnichts anderes übrig, als die falschen Zeichencodes von Anfang an zu korrigieren. Andernfalls endet das nur im Chaos.
    Wenn Du in dieses Format nur exportieren brauchst, dann kannst Du es auch dabei belassen, die Korrektur nur vor dem Export durchzuführen.

    Gruß,
      soenk.e