Probleme Anzeige französischen Akzent-Zeichen in UTF-8
Arbeite ich an einer französischsprachigen Website gebaut, in CakePHP. Ich habe versucht mehrere Funktionen, um zu versuchen, und konvertieren Sie den text in UTF-8 und richtig angezeigt, haben aber keinen Erfolg gehabt bisher - jede akzentuierte Buchstaben angezeigt werden, als schwarze Raute mit Fragezeichen. Sie tun korrekt angezeigt, wenn ich die char-set in den browser auf ISO-8859-1, aber ich würde gerne darauf während Seite UTF-8 konform sind. Ich habe verwendet:
html_entity_decode($string, ENT_QUOTES, 'UTF-8');
htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
utf8_encode
aber keine Zigarre. Die Seite ist auf UTF-8 festgelegt in der header -
Und die MySQL-Datenbank ist UTF-8 auch. Wie bekomme ich die Sonderzeichen korrekt angezeigt werden, die in UTF-8?
- Sorry, wusste nicht, wie Sie annehmen, die Antworten, haben es getan jetzt
- im Allgemeinen haben Sie nichts zu konvertieren. nur speichern der Benutzer text ohne Kodierung und als Anzeige Sie wieder mit htmlspecialchars nur.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie Ihre
@@character_set_results
. Standardmäßig verwendet MySQLlatin1
, nichtutf8
. VersuchenSET NAMES utf8
oder mysqli::set_charset.Update: hier ist, wie Sie vielleicht überprüfen Sie die Zeichensätze im Einsatz:
Lesen Sie mehr auf dev.mysql.com.
Erste: Überprüfen Sie Ihre php-Dateien die Codierung! Ich arbeite auf dem Mac, ich benutze Coda zu Programmieren, und es hat eine option zum konvertieren Zeichensatz ist, manchmal bekomme ich Probleme wie diese, und die Konvertierung zu UTF-8 immer zu lösen. Ich denke, dass Notepad++ das tun können, auf windows. (Wenn Sie dies tun, auf Ihren PHP-Dateien, alle Saiten Sie nicht brauchen die Funktionen
htmlspecialchars()
,html_entity_decode
etc )Zweite: wenn Sie mit der HTML-Ausgabe prüfen, ob Sie
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
auf deinem header...Dritte: Tun, was @janmoesen sagte auf Ihre MySQL-DB.
Erzählen Sie mir etwas über, die.
Ich nur Feste ein sehr ähnliches problem mit Sonderzeichen nicht anzeigen. Meine Datenbank-Tabelle ist utf-8 kodiert und meine html-header ist richtig eingestellt, für utf-8.
Hatte ich nicht angegeben, charset für meine MySQL-Verbindung, in meinem Fall bin ich mit PDO.
Keine Probleme jetzt!
In diesem Fall hilft jemand mit PHP-Klassen.
Meine Lösung war, war die Zeichenkodierung auf meine Verbindung.