Ich versuche krampfhaft PHP dazu zu bewegen HTML im Format UTF-8 auszugeben.
Dazu mache ich im <head> zuerst mal
in der MySql Datenbank habe ich dann ein Feld vom Typ text mit Kollation utf8_general_ci, was ich auslese:
Mache ich aber dann:
dann bekomme ich nur die normalen englischen Zeichen korrekt angezeigt.
Deutsche Umlaute zeigt er als Kästchen an, Sonderzeichen aus anderen Sprachen als Fragezeichen.
Im Quelltext der HTML Seite zeigt er zumindest noch die deutschen Sonderzeichen korrekt an, vermutlich weil ich ein deutsches Windows habe, aber bei Sonderzeichen aus anderen Sprachen gibt es auch im Quelltext nur Fragezeichen.
Lese ich den Text nicht aus MySql, sondern aus einer .txt Datei:
dann zeigt er immer alles korrekt an, sofern die Datei im Format UTF-8 gespeichert wurde.
Schaue ich im PHPMyAdmin in die Tabelle, kann ich Sonderzeichen in beliebigen Sprachen eingeben, er zeigt sie immer korrekt an.
Ich vermute also, dass irgendwo in meinem query der Wurm drin ist, nur, was mache ich da falsch?
Dazu mache ich im <head> zuerst mal
Code:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
in der MySql Datenbank habe ich dann ein Feld vom Typ text mit Kollation utf8_general_ci, was ich auslese:
Code:
$myText = mysql_fetch_object(mysql_query("SELECT `text1` FROM `my_text` WHERE `id` = 1"));
Mache ich aber dann:
Code:
print $myText->text1;
dann bekomme ich nur die normalen englischen Zeichen korrekt angezeigt.
Deutsche Umlaute zeigt er als Kästchen an, Sonderzeichen aus anderen Sprachen als Fragezeichen.
Im Quelltext der HTML Seite zeigt er zumindest noch die deutschen Sonderzeichen korrekt an, vermutlich weil ich ein deutsches Windows habe, aber bei Sonderzeichen aus anderen Sprachen gibt es auch im Quelltext nur Fragezeichen.
Lese ich den Text nicht aus MySql, sondern aus einer .txt Datei:
Code:
$MyFile = fopen("my_text.txt", "r");
$myText = fread($MyFile, filesize($MyFile));
fclose ($MyFile);
print $myText;
dann zeigt er immer alles korrekt an, sofern die Datei im Format UTF-8 gespeichert wurde.
Schaue ich im PHPMyAdmin in die Tabelle, kann ich Sonderzeichen in beliebigen Sprachen eingeben, er zeigt sie immer korrekt an.
Ich vermute also, dass irgendwo in meinem query der Wurm drin ist, nur, was mache ich da falsch?
Zuletzt bearbeitet: