Hallo,
Tja, mit ASCII-Code 128 (ja, als "€"!) wird das Euro-Zeichen "korrekt" gespeichert und auch wieder angezeigt.
Na das kann auch nicht sein.
Nochmal der Unterschied zwischen Bytes und Zeichen: Zeichen gibt es nur vor der Kodierung und nach der Dekodierung. Dazwischen gibts Bytes bzw. Bytesequenzen. Kodierungen und damit Dekodierungen gibt es viele.
Numerische Zeichenreferenzen verweisen, wie Gunnar schon zitiert hat, immer auf Zeichen in der riesigen nummerierten Unicode-Zeichenliste (unabhängig von der Kodierung). € verweist auf das Steuerzeichen U+0080.
Wenn du nun ein XML-Dokument mit dieser Zeichenreferenz parst, bekommst du auch das Zeichen U+0080 heraus. Und zwar in der Regel als UTF-8 kodiert, das ist die Bytesequenz 0xC2 0x80. Wenn du die als ISO-8859-1 dekodierst / den Browser dies tun lässt, kommt aber Unsinn heraus, nämlich Â[Steuerzeichen]. Und dieses Steuerzeichen wird von den Browsern eben, weil sie fehlertolerant sind, als Windows-1252-kodiertes Eurozeichen angenommen. Dann kommt aber immer noch € heraus.
Mathias