Hallo Leute,
ich habe ein seltsames Kodierungsproblem, bei dem ich die Ursache nicht ausmachen kann. Deshalb weiß ich noch nicht genau ob der Beitrag im XML-Forum gut untergebracht ist, da es genauso ein JAVA-, Linux- oder Apacheproblem sein kann.
Mittels einer XSLT-Datei und Java mit Saxon überführe ich eine XML-Datei in HTML und einigen Javscript-Dateien. Vorweg sei gesagt, einige Javscript-Dateinamen beginnen mit Umlauten. Ich habe überall, wo möglich, die Kodierung auf UTF gestellt (XSLT-Datei, Ausgabeformat mit result-document etc.)
So, das Problem:
Unter Windows funktioniert alles einwandfrei. Die Dateien werden erstellt, auch die, die mit einem Umlaut anfangen. Der Browser erkennt korrekt die Kodierung UTF und zeigt alles sauber an.
Unter Linux funktionieren einige Sachen, andere nicht. Die JS-Dateien, die mit Umlauten beginnen, werden nicht korrekt erstellt (ä.js wird zu ?.js) Der Browser erkennt bei den erstellten HTML-Seiten nicht das Format UTF sondern ISO (Meta-Angabe ist gesetzt). Wenn ich eine der vorhandenen JS-Dateien im Browser direkt aufmachen (also so, dass ich den Quelltext sehe) wird bei diesen Dateien UTF erkannt, aber wie gesagt nicht bei den HTML-Dateien. Seltsamer Weise werden in den HTML-Seiten die Umlaute etc. korrekt dargestellt.
Ich hatte auch schonmal das Problem, dass unter Linux UTF nicht erkannt wird UND die Umlaute NICHT richtig dargestellt wurden. Das Problem habe ich behoben, indem ich in den XSLT-Dateien das Ausgabeformat von XML auf HTML gestellt habe. Damals war das Problem aber auch unter Windows und nicht nur unter Linux. Außerdem bei ALLEN Dateien, also auch bei JS. Die Dateien, die mit Umlauten beginnen wurden auch schonmal erstellt unter Linux, habe aber seit dem nichts weiter verändert.
Linux ist auf UTF eingestellt (Locale). Im Apache habe ich schon probiert "AddCharset UTF-8 .html" und "AddDefaultCharset UTF-8". Hatt alles nix gebracht.
Achso, das verrückteste ist, wenn ich eine der HTML-Seiten, die unter Linx erstellt wurden herunterlade und in meinen Windows Apache ablege, DANN wird UTF vom Browser erkannt. Da aber schon bei der Transformation die JS-Dateien mit Umlaut nicht erstellt werden, kann ich mir eigentlich nicht vorstellen, dass es am Apache liegt, da dieser mit der Transformation ja noch nichts zu tun hat.
Dazu jemand eine Idee? (Vorausgesetzt es liest überhaupt jemand diesen Roman ;-)
Vielen, vielen Dank im Voraus
Schöne Grüße
Axel
ich habe ein seltsames Kodierungsproblem, bei dem ich die Ursache nicht ausmachen kann. Deshalb weiß ich noch nicht genau ob der Beitrag im XML-Forum gut untergebracht ist, da es genauso ein JAVA-, Linux- oder Apacheproblem sein kann.
Mittels einer XSLT-Datei und Java mit Saxon überführe ich eine XML-Datei in HTML und einigen Javscript-Dateien. Vorweg sei gesagt, einige Javscript-Dateinamen beginnen mit Umlauten. Ich habe überall, wo möglich, die Kodierung auf UTF gestellt (XSLT-Datei, Ausgabeformat mit result-document etc.)
So, das Problem:
Unter Windows funktioniert alles einwandfrei. Die Dateien werden erstellt, auch die, die mit einem Umlaut anfangen. Der Browser erkennt korrekt die Kodierung UTF und zeigt alles sauber an.
Unter Linux funktionieren einige Sachen, andere nicht. Die JS-Dateien, die mit Umlauten beginnen, werden nicht korrekt erstellt (ä.js wird zu ?.js) Der Browser erkennt bei den erstellten HTML-Seiten nicht das Format UTF sondern ISO (Meta-Angabe ist gesetzt). Wenn ich eine der vorhandenen JS-Dateien im Browser direkt aufmachen (also so, dass ich den Quelltext sehe) wird bei diesen Dateien UTF erkannt, aber wie gesagt nicht bei den HTML-Dateien. Seltsamer Weise werden in den HTML-Seiten die Umlaute etc. korrekt dargestellt.
Ich hatte auch schonmal das Problem, dass unter Linux UTF nicht erkannt wird UND die Umlaute NICHT richtig dargestellt wurden. Das Problem habe ich behoben, indem ich in den XSLT-Dateien das Ausgabeformat von XML auf HTML gestellt habe. Damals war das Problem aber auch unter Windows und nicht nur unter Linux. Außerdem bei ALLEN Dateien, also auch bei JS. Die Dateien, die mit Umlauten beginnen wurden auch schonmal erstellt unter Linux, habe aber seit dem nichts weiter verändert.
Linux ist auf UTF eingestellt (Locale). Im Apache habe ich schon probiert "AddCharset UTF-8 .html" und "AddDefaultCharset UTF-8". Hatt alles nix gebracht.
Achso, das verrückteste ist, wenn ich eine der HTML-Seiten, die unter Linx erstellt wurden herunterlade und in meinen Windows Apache ablege, DANN wird UTF vom Browser erkannt. Da aber schon bei der Transformation die JS-Dateien mit Umlaut nicht erstellt werden, kann ich mir eigentlich nicht vorstellen, dass es am Apache liegt, da dieser mit der Transformation ja noch nichts zu tun hat.
Dazu jemand eine Idee? (Vorausgesetzt es liest überhaupt jemand diesen Roman ;-)
Vielen, vielen Dank im Voraus
Schöne Grüße
Axel
Kommentar