On 06.11.06 21:42:58, Holger Rauch wrote: > ich habe hier den interessanten Fall, daß ein non-breaking space in einer > HTML-Doku vom Apache 2.2.3 offensichtlich als 2-Byte-Zeichen an den web > browser zurückgeliefert wird. Im Firefox erscheint dann unter Windows ein ?, > unter Linux F0 FD in einem Rahmen drin (die genaue Hex-Kombination müßte ich > noch mal nachschauen).
Was sagen die HTTP-Header? Welche Kodierung hat die HTML-Datei? > Die HTML-Doku wurde aus DocBook XML sources mit den XSL stylesheets erzeugt. > Das Problem tritt unabhändig von der Version der XSL stylesheets auf (nicht > nur mit der aktuellen V 1.71.1 sondern auch mit älteren Versionen). In den > erzeugten HTML pages steht als encoding ISO8859-1 drinnen. Andere Zeichen > wie z. B. Umlaute werden richtig dargestellt. Gerade in HTML-Doku, die > mittels der XSL stylesheets erzeugt wurde, wird an verschiedenen Stellen > massiv Gebrauch von non-breaking spaces gemacht (u. a. in den > Naviagions-Links am Anfang und am Ende der web pages). Ich vermute mal non-breaking-spaces nicht als HTML-Entity? Wieso nicht, wuerde um das Problem "herum" arbeiten. Ansonsten ist die Ursache vmtl. das XSL stylesheet, ich vermute mal die Umlaute da drin sind latin1 kodiert, die nbsp's aber utf-8 kodiert. Jedenfalls kriegst du wohl am eine eine HTML-Datei die latin1 und utf-8 Kodierung nutzt, da latin1 im Header angegeben ist nimmt der Browser das an und zeigt dir entsprechend die 2 Bytes als 2 Zeichen an. > Legt man die generierte HTML-Doku lokal auf dem Rechner ab und surft > mit einer "file://"-URL drauf, wird der non-breaking space KORREKT > dargestellt. Folglich bleibt eigentlich nur noch der Apache übrig, > der die HTML-Doku verhunzt. Hmm, interessant. Dann ist vmtl. das Default-Encoding des Apache falsch gesetzt. Um das rauszukriegen muesste man mal in die HTTP-Header schauen die vom Apache kommen und mal mit nem hexeditor an die Datei gehen und schauen ob wirklich nur die spaces 2-Byte-Kodiert sind. > Der der Apache ja als user www-data läuft, habe ich diesen account mal > unlocked (ein passwd verpaßt), und dann als user www-data die LANG und > LC_ Variablen kontrolliert. LANG steht auf [EMAIL PROTECTED] und LC_MESSAGES > auf C, die übrigen LC_ Variablen sind nicht gesetzt. Die [EMAIL PROTECTED] > locale ist auf dem System auch generiert worden und somit vorhanden. Das ist unerheblich fuer den Apachen. > Naheliegende Fragen: Hat jmd. von Euch schon mal so ein (oder ein Ähnliches) > Problem gehabt? Falls ja, gibt es für den Apache eine Konfigurations-Option, > mit der man die o.g. Unschönheit beheben könnte? Ja, das default-charset setzen. Befehl weiss ich so aus dem Kopf nicht, aber in apache2-Default-Konfig ist eine auskommentierte Zeile drin... Andreas -- You have a strong appeal for members of your own sex. -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)