• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Kyrillische Zeichen - Encoding

Crusher-ScT-

Guest
Hallo Leute,

ich generiere aus einem XML File mit einem XSL Stylesheet einen HTML Schnipsel. Der HTML Schnipsel beinhaltet eine Tabelle mit Inhalten. Ohne <body> oder <head> Tags. HTML Seite geht direkt los mit <table>content ...

In dem XML File gibt es kyrillische Zeichen.

Wenn ich nun mir den HTML Schnippsel im IE anschaue "springt" der IE automatisch auf encoding UTF-8 und die kyrillischen Zeichen werden korrekt dargestellt.

Im Firefox werden die Zeichen nicht korrekt dargestellt. Das Encoding im Firefox steht auf ISO-8859-1.


Soweit der erste Teil. Danach wird eine neue HTML Seite generiert (für ein Portal) und dabei wird das HTML Schnippsel verwendet. In der "Endseite" werden dann die kyrillischen Zeichen weder im Firefox noch im IE richtig angezeigt. Das Encoding der Seite allerdings steht auf UTF-8. Interessant dabei: In der Menüstruktur (die nicht Teil des HTML Schnippsel ist) gibt es ebenfalls kyrillische Zeichen die RICHTIG angezeigt werden.

Wie genau die Endseite generiert wird ist schwer zu sagen, da dieser Prozess sehr sehr komplex ist.

Frage1: Läuft die XSLT korrekt ab oder gibt es da bereits Fehler?
Frage2: Was muss ich tun damit alles ordentlich angezeigt wird? :-) Bzw. gebt mal eine Einschätzung ab wo ihr denkt das der Fehler in etwa liegt.

Gruss Oliver

p.s. erster Lösungsansatz war von mir alle "iso-8859-1" einträge zu suchen und zu ersetzen durch "UTF-8". Habe ich gemacht, hat aber leider nichts geholfen.
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Hälst du dich auch ganz sicher an alle Standards? Sieht mir nicht danach aus. Denke, dass es dann keine Probleme gäbe.
 

bog

Mitglied seit
02.08.2002
Beiträge
10.121
Reaktionen
0
Ort
auf dem mutterschiff
moeglicherweise findet in der generierung irgendwo eine codepage-unsichere umwandlung statt und ein kyrillischer buchstabe in der menuestruktur ist oberflaechlich derselbe, bytetechnisch aber nicht derselbe wie im html-schnipsel. andere fehleranfaelligkeiten sehe ich sonst nicht.. werden denn alle dateien (xsl/xml, v.a. aber html) auch als utf8 gespeichert? und wie schauts da beim generierungsprozess aus?
 

palandir

Guest
Der Fehler liegt im Generierungsprozess oder daran, wie der Server die Seite ausliefert (naemlich als ISO-8859-1). Der Browser sollte sich grundsaetzlich daran halten, die Seiten so darzustellen, wie sie vom Webserver uebergeben werden. Firefox tut das auch. Der IE allerdings ist der einzige Browser, der das unter Umstaenden ignoriert, da er seine eigenen Erkennungs-Routinen fuer die Kodierung hat. Das ist manchmal eine gute Idee (bei serverseitigen Fehlkonfigurationen, wie hier wohl), aber entspricht nicht ganz dem Standard. Der Server muss es richtig machen und gibt dem Browser dann vor wie es sein soll.
 

Crusher-ScT-

Guest
Original geschrieben von cart
Hälst du dich auch ganz sicher an alle Standards? Sieht mir nicht danach aus. Denke, dass es dann keine Probleme gäbe.

Was meinst du genau?

Ist es wichtig ob eine benutzte XML oder XSL Datei in der Kopfzeile ISO-8859-1 oder UTF-8 stehen hat? Sollte doch für den Prozess der ausgeführt wird keine Rolle spielen oder?


Dadurch das bereits der HTML Schnipsel vom Firefox nicht korrekt angezeigt wird ist es am wahrscheinlichsten das der Fehler bei der XSLT liegt oder was meint ihr?
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Naja, du solltest dich eigentlich konstant an die Standards halten und auch nicht nur einen HTML Schnipsel übergeben, sondern schon valides HTML. Auseinanderrupfen kannst du das dann doch hinterher immer noch. Wenn dem Server die ganze Zeit klar ist, welchen Zeichensatz du benutzt, sollte er auch keine Probleme beim umwandeln haben.

@0xdeadbeef: Er übergibt den HTML Kram ohne Definition des Zeichensatzes.

Btw, ich würde nicht unbedingt FF zum testen nehmen. Nimm lieber Opera oder den IE7. Die beiden sind zur Zeit am nächsten an den Standards, wobei Opera noch einen Tacken näher dran ist. Wenn es darin gescheit läuft, musst du für die restlichen Browser die du abdecken willst (FF, IE5.5/6...), nicht mehr allzu viel ändern und kannst im absoluten Notfall eine kleine Weiche schreiben.
 

palandir

Guest
Als irgendwas muss es der Server ausliefern, und daran sollte sich der Browser auch halten. Wenn das nicht das gewuenschte Encoding ist, muss man eben dafuer sorgen, dass man das richtige ausliefert. So einfach ist das. ;)

Und dass IE7 so standardkonform sein soll wage ich zu bezweifeln, das war in der Vergangenheit nie der Fall. Firefox und Opera sind eine gute Wahl zum Testen.

Tipp: Am besten du benutzt ausschliesslich UTF-8.
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Der Server liefert es dann seinem Zeichensatz entsprechend aus. Welcher das ist, kann man leicht rausfinden.

Was den IE7 angeht: Wenn du das bezweifelst, dann hast du dich noch nicht wirklich mit dem IE7 und dem Standard von HTML, CSS, Javascript etc. beschäftigt. Aktuell kann man die Unterstützungsliste bei Opera beginnen, direkt zum IE7 gehen und danach erst zu Firefox.
Das letzterer schon ewig kleinere Macken hat, die scheinbar immer wieder durch neue ersetzt werden, erinnert sehr stark an die Zeiten in denen es mit Netscape anfing bergab zu gehen.
 

Crusher-ScT-

Guest
also ich bin jetzt soweit das es wohl irgendwo in den Tiefen von Velocity Probleme gibt. was da genau abgeht ist schwierig rauszufinden.

Beim Einlesen vom HTML in ein PageContent Objekt läuft noch alles gerade ... also gibt es irgendwo Problem beim Rausschreiben ...
 
Oben