Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Welchen Content-Type liefert der Webserver denn im HTTP-Header? (Das läßt sich beispielsweise mit http://web-sniffer.net/ prüfen.)Quoted
Original von oixio
und auch in dem HTML-Gerüst drum herum habe ich am Anfang auf UTF-8 gestellt:
[php]print("<HTML>
<HEAD>
<TITLE>Bookmarks</TITLE>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n");[/php]
In der fertigen Ausgabe zeigt mir der Firefox aber folgendes an:
zb statt Etechnik - Übungen, sehe ich E-Technik - Übungen
Quoted
HTTP Response Header
...
Content-Type: text/html; charset=ISO-8859-1
This post has been edited 1 times, last edit by "oixio" (Aug 30th 2005, 2:40pm)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Dein Dokument wird so wie Du es beschrieben hast in UTF-8 kodiert. Demnach mußt Du dem Browser auch sagen, daß es sich um UTF-8 handelt, denn zuverlässig automatisch erkennbar ist das nicht.Quoted
Original von oixio
ich nehme mal an du meinst folgende Zeile:
Quoted
HTTP Response Header
...
Content-Type: text/html; charset=ISO-8859-1
Das beißt sich ja nen bischen. Meinst du es hilft wenn ich alles auf iso umstelle? Ich werds mal ausprobieren. Oder hat wer ne Idee wie ich zu UTF-8 komm?
Source code |
|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Das ist verwunderlich. Kann es eventuell sein, daß Du die Datei per HTTP-Request eingelesen hast und der Webserver die in der Datei angegebene Kodierung mit einer anderen im HTTP-Header überschrieben hat? Falls nein, dann ist entweder der PHP-XML-Parser buggy oder Du hast noch etwas anderes übersehen ...Quoted
Original von oixio
Dann ist mir beim lesen der Api aber noch was aufgefallen. Man kann dem Parser beim Erstellen übergeben, welche Codieerung er benutzen soll (zB für die XML-Datei, die er einliest). Ich hatte gelesen, dass dieser bei PHP intern immer UTF-8 benutzt und die Quellencodierung automatisch anhand des ersten Tags bestimmt. Hier in diesem fall ist dasund habe ihm nichts übergeben, damit er dei Defaultwerte nutzt.
Source code
1 <?xml version="1.0" encoding="UTF-8"?>
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Ist wohl genau das Problem, was Du auch nanntest: der optionale Parameter von xml_parser_create.Quoted
Original von oixio
Also ich les das so ein (Codeauszug):
[php]
$this->xml_parser = xml_parser_create('UTF-8');
[/php]
Dazu kommen dann halt noch die Funktionen für Open- und End-tag. Auf jeden fall funktioniert es jetzt und erstmal bin ich damit zufrieden, auch wenn ich gerne wüsste, woran es lag.
Quoted
The optional encoding specifies the character encoding for the input/output in PHP 4. Starting from PHP 5, the input encoding is automatically detected, so that the encoding parameter specifies only the output encoding. In PHP 4, the default output encoding is the same as the input charset. If empty string is passed, the parser attempts to identify which encoding the document is encoded in by looking at the heading 3 or 4 bytes.
This post has been edited 2 times, last edit by "Joachim" (Aug 31st 2005, 5:58pm)