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)

Antwort per Email an