strolch_007
|
Forenuser
|
|
registriert
|
16.03.2009
|
wohnt in
|
|
Beiträge
|
40
|
|
Hallo,
meine ganze Programmierei läuft auf UTF-8.
Einstellungen in der DB sind utf8_general_ci, im ausgelagerten CSS @charset "utf-8"; , in PHP header('content-type: text/html; charset=utf-8' , im XHTML head <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />.
Funktioniert soweit auch alles ganz prima. Nur eine einzige Sache klappt so gar nicht. - Und zwar wenn ich Tabellen (in PHP) in ein neues Verzeichnisse auf Festplatte speichere (aus dem Hauptformular auslagere) und diese dann wieder per include einbinde, dann erhalte ich z.b. ä ß so --> �� (sollen 2 Herzchen sein). Mache ich das gleiche mit Tabellen bei denen ein Formular mit eingeschlossen ist (accept-charset=\"utf-8\", dann gibts bei der Ausgabe dieses includes keine Probleme. Theoretisch meine ich zu wissen woran das liegt (die ausgelagerte Tabelle braucht ebenfalls nochmals einen Hinweis das es sich um UTF-8 handelt). Praktisch weiß ich aber nicht wie ich das dem externen Formular "mit gebe".
header('content-type: text/html; charset=utf-8'; kann ich ja nicht verwenden, weil ich dann einen Fehlerhinweis bekomme das der header nicht ein zweites mal aufgerufen werden kann. Irgend eine Möglichkeit wie bei formularen mit dem accept.... gibts wohl bei <table.... nicht, auf jeden Fall kenne ich keine.
Hab soeben folgenden Test durchgeführt (kleiner Nachtrag zu obigem):
PHP:
$msql = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) or die(mysql_error());
$result = mysql_query("SHOW VARIABLES LIKE 'character%'") or die(mysql_error());
while( false!==($row=mysql_fetch_array($result, MYSQL_NUM)) ) {
echo "<p style=\"margin-left: 230px;\">" .htmlentities("$row[0] = $row[1]<br /></p>\n";}
und als Ausgabe das bekommen:
character_set_client = utf8<br /></p>
character_set_connection = utf8<br /></p>
character_set_database = utf8<br /></p>
character_set_filesystem = binary<br /></p>
character_set_results = utf8<br /></p>
character_set_server = latin1<br /></p>
character_set_system = utf8<br /></p>
Evtl. liegt da --->>character_set_server = latin1<br /></p> ja der Fehler?
Wer weiß hier eine Lösung um z.b. den character_set zu ändern (falls das überhaupt geht), oder hat der gar keine Auswirkung?
Grüssle
Strolch_007
PS: Ich weiß man könnte maskieren und alles ist gut, aber wozu hab ich dann auf UTF-8 umgestellt?
Dieser Beitrag wurde am 21.10.2009 um 14:15:47 Uhr von strolch_007 zum 14. Mal editiert.
|