# UTF-8 auf HTML/PHP einfügen für Ä,Ü,Ö,ß,ü,ö,ä



## Davicito (23. November 2012)

Hi, ich habe folgendes Problem mit dem Zeichensatz "UTF-8".

Ich habe nun schon mehrere PHP- und Html-Dateinen geschrieben. Nun ist mir aufgefallen, dass bei einer Text-Ausgabe, das "ö" nicht richtig dargestellt wird. 
Alle Dateien wurden mit dem Notepad++ geschrieben, in der Kodierung ANSI. Nun habe ich gelesen, dass man, bevor man die Zeile: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> in den Header einfügt, im Editor den Zeichensatz UTF-8 ohne BOM auswählen muss und für alle bereits geschriebenen Dateien - unter dem Menüpunkt -> Kodierung -> UTF-8 ohne BOM - eine nachträgliche Kodierung vornehmen muss.

Aber leider habe ich trotzdem das Problem, dass auf der Seite Menu.php alle ö ü und ä bzw. ß dargestellt werden und auf einer anderen Seite MA-Ausgabe.php, im Formular, alle ö ä ß ... nicht korrekt angezeigt werden. 

Nur in der Menu.php habe ich <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> im Header-Tag angegeben und alle weiteren PHP-/HTML-Dateien, werden durch die Menüpunkte, mittel include();, geladen/includiert.

entferne ich diese Zeile, wird das Formular in der MA-Ausgabe.php korrekt dargestellt nur in der Menu-php wieder nicht.

Also, woran liegt es nun, dass es einmal in einer Datei funktioniert und aber in der anderen nicht?

Gruß


----------



## threadi (23. November 2012)

Bezogen auf den HTML-Code ist entscheidend was im Browser ankommt. Dazu darf die von dir genannte Charset-Angabe nur 1 Mal darin enthalten sein - und zwar innerhalb des <head>-Bereichs.

Außerdem ist entscheidend, dass alle Dateien den selben Zeichensatz haben, ebenso sollten die dargestellten Inhalte den selben Zeichensatz haben. Wenn Du Inhalte aus einer Datenbank ausliest, muss diese ebenfalls den selben Zeichensatz haben, auch deren Tabellen und Spalten. Zudem muss die Datenbankverbindung auch mit dem selben Zeichensatz gestartet werden.

Und: es ist auch entscheidend was im HTTP-Header steht. Die Angabe des Zeichensatzes dort überschreibt die Angabe im HTML-Code, sollte also idealerweise auch den selben Zeichensatz angeben.


----------

