Randdaten
- PHP Version 4.4
- Notepad als Editor
- Notepad++ als Editor
Da ich Probleme mit den Umlauten in einigen von PHP ausgegebenen Webseiten hatte, beschloss ich alle Dateien in UTF-8 statt ASCI zu speichern. Das hat auch prima funktioniert, alle Umlaute wurden angezeigt, doch ein Haken blieb:
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /var/www/index.php:1) in /var/www/scripte/config.php on line 4
Der Grund ist nach langem suchen gefunden: Wenn man eine Datei als UTF-8 abspeichert, wird, zumindest beim Notepad, am Anfang der Datei der „Byte Order Mark“ geschrieben. Das hat zur Folge, dass „die BOM zur Ausgabe von Zeichen [führt], so dass ohne „output buffering“ keine HTTP-Header mehr geändert werden können.“ (Auszug aus Wikipedia)
Das Byte Order Mark wird benutzt, um zu klären, in welchem UTF Format die Datei gespeichert ist (UTF-8, UTF-16, etc).
In einem Forum habe ich gelese, dass ein
header(‚Content-Type: text/html; charset=utf-8‘);
geholfen hat. Bei mir klappt das nicht.
Ich lass die Umlaute vorerst so wie sie sind. Ich kümmere mich später um dieses Problem.
EDIT:
Es gibt doch einen Weg 🙂
Wenn man den Notepad++ nutzt, kann man unter dem Menüpunkt „Format“ auf „UTF-8 Ohne BOM“ schalten. Damit ist das Dokument auf UTF-8 geschaltet, zeigt mir alle Umlaute an und der Header wird korrekt ausgeführt.
Informationen
vielen vielen Dank, ich hatte genau dieses Problem, und nutze auch notepad plus plus.
aber mein Problem war mit arabischen Buchstabe. und jetzt alles funktioniert einwandfrei.
Gruß
By: amiraldo1 on Oktober 19, 2008
at 10:02 pm
You write very well.
By: Petronella on November 12, 2008
at 8:09 am
Ich hab das jetzt genau so gemacht mit Notepad ++. Allerdings ohne Erfolg. Das komísche dabei ist aber, dass wenn ich meinen Text als eine Variable übergebe, werden alle Zeichen richtig dargestellt.
Kann mir jemand helfen?
Gruß Frank
By: Frank on Januar 13, 2010
at 6:18 pm
Hallo Frank,
hast du auch darauf geachtet, das vor dem Befehl „session_start()“ wirklich nichts anderes ausgeführt wird?
Siehe dazu auch: http://www.php-fehlermeldungen.de/topic23.html
By: duk4yl on Januar 14, 2010
at 7:05 am
Cool Danke,
das Problem war nicht das noch was vor dem session_start() war sonderen, dass es gefehlt hab 🙂
By: Frank on Januar 14, 2010
at 4:07 pm
hab noch was rausgefunden wenn man
$pdf->Write(7,“Text“);
und nicht
$pdf->Write(7,’Text‘);
funktioniert alles viel besser
Ich hoffe ich kann damit auch noch jemand helfen.
Gruß
By: Frank on Januar 14, 2010
at 7:39 pm