Axel: Encoding Windows <-> Linux

Hallo,

ich habe ein Problem mit dem XML-Encoding bei einem XSL-Stylesheet.
Ich wandle ein XML-Dokument mit einem XSL-Stylesheet in HTML um. Das Ganz wird mit einem Java-Programm mit Saxon gemacht, also die HTML Dateien auf der Platte abgelegt und nicht "on the Fly" im Browser umgewandelt.
So, unter Windows habe ich keine Probleme. Jetzt habe ich das Ganze aber mal auf einen Linux-Rechner gebracht und bekomme die Codierung da nicht hin.

In der XSL habe ich:
<?xml version="1.0" encoding="UTF-8"?>
(...)
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="no" (... doctype etc. ...) />

Also überall UTF-8 angegeben.

In den HTML Seiten steht auch
<?xml version="1.0" encoding="UTF-8"?> und die Meta-Angabe mit UTF-8.

Wie gesagt unter Windows einwandfrei. Unter Linux habe ich ganz viele Sonderzeichen im HTML-Code (Sehe ich auch wenn ich den Quelltext anzeige)
Der Browser erkennt einfach nicht, dass es sich um UTF handelt und stellt die Seite als ISO dar. Wenn ich im Browser dann auf UTF umstelle, sieht alles wieder sauber aus. Bei den unter Windows generierten HTML-Seiten erkennt der Brower UTF automatisch.

Weiß jemand woran das liegen kann?

Vielen Dank im Voraus
Schöne Grüße
Axel

  1. Hallo nochmal,

    eine zusätzliche Information noch. Mein Ultraedit hatte übigens unter Windows die XSL-Dateien selbst auch als UTF codiert erkannt. Diese habe ich in ASCII konvertiert (auch mit Ultraedit) da ansonsten unter Linux selbst die XSL-Dateien nicht lesbar sind. Sind ein paar wenige merkwürdige Hyroglyphen am Anfang der Datei und der Transformer gibt nen Fehler. Vielleicht weiß ja alternativ jemand, wie ich die UTF-Codierten Dateien so ins Linux kriege (WinSCP), dass sie dort lesbar sind.

    Vielen Dank im Voraus
    schöne Grüße
    Axel

    1. Hallo,

      Sind ein paar wenige merkwürdige Hyroglyphen am Anfang der Datei und der Transformer gibt nen Fehler.

      Das hört sich nach BOM (Byte-Order Mark) an.
      http://www.ultraedit.com/index.php?name=Forums&file=viewtopic&t=332&highlight=

      Dazu auch sehr lesenwert: http://www.activevb.de/rubriken/kolumne/kol_20/unicode.html

      Grüße
      Thomas

      1. Hallo,

        Das hört sich nach BOM (Byte-Order Mark) an.
        http://www.ultraedit.com/index.php?name=Forums&file=viewtopic&t=332&highlight=

        vielen Dank für Deine Antwort. Mit diesem BOM hatte ich auch schon rumprobiert. Habe auch das Problem, dass Ultraedit den grundsätzlich mitschreibt (Wie auf der Eine in dem UE Forum).
        Ich denk mittlerweile, dass eigentlich Problem ist, das mein Linux nicht auf UTF eingestellt ist. In meiner /etc/locale.gen war noch ISO eingetragen. Das habe ich auch geändert und mit locale-gen angewendet. Ich habe jedoch die Befürchtung, dass sich die Einstellung, die ich als Root mache, nicht auf den Webserver (der mittels PHP das JAVA-Programm für die Transformation startet *g*) auswirken.

        Gebe ich "locale" auf der Konsole ein, ist alles auf UTF eingestellt. Lasse ich über PHP den Befehl "locale" ausführen und mir das Ergebnis im Browser darstellen, steht dort z.B.:

        LC_NAME="C"

        LC_NAME und irgendwas mit UTF. VIelleicht habe ich den Befehl aber auch falsch angewendet...
        In meiner locale.gen steht de_DE.UTF-8@euro UTF-8

        Vorhin stand bei dem Befehl locale auf der Konsole dann, wie gesagt LC_NAME = und irgendwas mit UTF: JETZT nach erneuten einloggen steht dort LC_NAME = "de_DE@euro"

        Ich versteh gar nix mehr :-( Linux ist aber auch sehr neu für mich.

        VIelleicht hat ja noch jemand einen Tip

        Vielen, vielen Dank im Voraus
        Schöne Grüße
        Axel

        Als Root auf der Konsole steht dort :

        Schöne Grüße
        Axel

  2. Hi,

    In den HTML Seiten steht auch
    <?xml version="1.0" encoding="UTF-8"?> und die Meta-Angabe mit UTF-8.
    Wie gesagt unter Windows einwandfrei. Unter Linux habe ich ganz viele Sonderzeichen im HTML-Code

    Welches Encoding liefert der Webserver im HTTP-Header content-type?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.