Darstellung : MySQL und HTML select

Hallo !

Ich habe in meiner DB einen Datensatz mit französischem Text. Wenn ich diesen nun auslese und in in einer select box anzeigen, ist die Darstellung falsch.

Ecole Supérieure du Bois NANTES
Auf der Seite :
 
in welchem Charset gibt der Webserver die Seite aus?
In welchem Charset wurde das PHP-Script gespeichert?
Sind in dem generierten HTML-Code auch noch irgendwelche Charset-Meta-Tags?
In welchem Charset liegt der Text in der Datenbank gespeichert?
 
Ich würde auch vermuten, dass das Charset irgendwo gestört ist.
Um so etwas zu vermeiden, sollte überall (Webserver, Datenbank und im Dokument) dieselbe Zeichencodierung verwendet werden. In diesem Fall würde ich dir UTF-8 empfehlen.

Schau also am Besten mal ob im Head-Bereich der Datei folgendes steht:
Code:
<meta http-equiv="content-type" content="text/html; charset=[B]utf-8[/B]" />
alle Tabellen und Spalten in der Datenbank auch UTF-8 als Charset verwenden und auch der Webserver standardmäßig Dokumente in diesem Charset ausliefert.
 
Hi was oft hilft als erster MySQL Query.

Code:
SET NAMES UTF8
In seinem Fall hilft es nicht, da es lediglich um die Ausgabe der Daten geht (gesetz dem Fall, dass die Daten richtig inna DB stehen). Bei SET NAMES geht es um die Daten, die zur DB hin gehen.


Ich zitiere mal von der MySQL-Page:
SET NAMES indicates what character set the client will use to send SQL statements to the server.
 
Was man machen sollte, ist in PHP die Funktion http://de.php.net/manual/de/function.mysql-set-charset.php auszuführen, und das gewünschte Charset einzustellen. "SET NAMES" wird in der PHP Dokumentation ausdrücklich nicht empfholen.

Das Charset sollte identisch sein, mit dem Charset in dem die PHP/HTML Dateien gespeichert sind und mit dem Charset der im HTTP-Header mitgesendet wird sowie dem Charset der im fertigem HTML Code in den Meta Daten steht. Letzteres ist aber glaube ich optional.

Dann dürfte es keine Probleme mehr geben. Vorraussetzung ist allerdings, dass die Daten in der Datenbank dem in der Datenbank eingestelltem Zeichensatz entsprechen.
 
Zuletzt bearbeitet:
Also wenn ich UTF-8 Daten ohne SET NAMES UTF-8 zu meinen PHP Skript schicke und Ausgebe sind sie Falsch dargestellt. Woran das liegt habe ich aber nicht weiter untersucht.
 
Ich selbst verwende immer noch ein
PHP:
mb_internal_encoding('UTF-8');
damit innerhalb PHP auch mit dem richtigen Codeset gearbeitet wird.
 
Zurück
Oben