Hallo,
Hallo selfhtml Gemeine.
ja, ein paar Gemeine gibt's hier möglicherweise auch ...
1: Ich habe eine MySQL DB (utf8_general_ci) in welcher alle texte also auch Umlaute gespeichert sind. Die Umlaute sind direkt im Text und nicht als htmlentrie.
Sind die Texte in der DB *wirklich* in UTF-8 gespeichert, oder steht das nur auf dem Etikett der Schublade?
2: Auf meiner index.php habe ich den Meta-Content wie folgt angegeben:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
Ist das HTML-Dokument *wirklich* in ISO-8859-1 codiert oder steht das nur im Falz?
Macht der Server im HTTP-Header eine anderslautende Angabe, oder vielleicht gar keine?
auf dieser Seite werden nun die Umlaute korekt dargestellt. Stelle ich hier UTF8 ein werden sie als unleserliche SOnderzeichen dargestellt. Also bleibe ich hier bei ISO-8859-1.
Okay, also offensichtlich keine Codierungsangabe im Header.
<?
include("../db_conn.php");
$m_id = $_GET[m_id];if(isset($m_id)) {
$abfrage = "SELECT id,datum,title,genere,image,trailer,text FROM kino WHERE id = '$m_id'";
$erg = mysql_query($abfrage);
list($id,$datum,$title,$genere,$image,$trailer,$text) = mysql_fetch_row($erg);
$datum = date('d.m.y',strtotime("$datum"));
echo "$id#$datum#$title#$genere#$image#$trailer#$text";
}
?>
In welcher Codierung tauschen die Datenbank und dein PHP-Script untereinander Daten aus? Welche Codierung gibt das Script im Header dem Client (Browser) gegenüber an?
> Nun sind aber die ausgelesenen Daten wieder mit unleserlichen Sonderzeichen gespickt obwohl sich die DIV auf der Index mit ISO-8859-1 befindet ??
Dann stimmt wohl an irgendeiner Stelle des Übertragungswegs die Codierung nicht.
Generell gilt:
\* Unterscheide in Gedanken zwischen der Codierung, die du \*tatsächlich\* verwendest, und der,
die an den diversen Schnittstellen \*angegeben\* wird (sollten natürlich gleich sein).
\* Beachte, dass möglichst an allen Stellen im Übertragungsweg dieselbe Codierung verwendet
wird, und dass diese Codierung auch korrekt angegeben wird.
In deinem Fall sind zu betrachten:
o die Datenbankinhalte (Felder)
o die Codierungsangabe der Datenbankfelder
o die Codierungsangabe der Verbindung von PHP zu mySQL
o die Codierung des PHP-Scripts selbst, wenn Stringkonstanten darin vorkommen
o die Codierung statischer HTML-Dokumente oder Dokumentteile
o die Codierungsangabe im HTTP-Header
o die Codierungsangabe im meta-Element (als Fallback)
Du verwendest offensichtlich einen Mix aus UTF-8 und ISO-8859-1. Das \*kann\* man tun, wenn man sehr genau weiß, was man tut - empfehlenswert ist es nicht. Um möglichst viele unterschiedliche Zeichen darstellen zu können, empfiehlt sich UTF-8, und zwar konsequent.
So long,
Martin
--
Lebensmotto der Egoisten:
Was ist so schlimm daran, dass jeder nur an sich selbst denkt? Dann ist doch an alle gedacht!
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(