CKEditor charset
Ich aktualisiert meine web-app für die Verwendung von UTF-8 statt ANSI.
Habe ich die folgenden Maßnahmen zu definieren charset:
mysql_set_charset("utf8"); //PHP
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> //HTML
utf8_general_ci //In MySQL
Ich bearbeitete auch die CKEditor config zu entfernen htmlentities weil ich muss das richtige Zeichen (d.h. é
und nicht é
) für die MySQL-fulltext-Suche.
config.entities = false;
config.entities_latin = false;
In der Datenbank (phpMyAdmin-Ansicht) und auf normale text-Felder ausgegeben werden (HTML, <input>
oder <textarea>
), sieht alles in Ordnung (ich sehe é
, nicht é
, nicht é
, yay).
Jedoch CKEditor hat ein paar Probleme mit dem encoding. Siehe die beigefügten Bild für das gleiche Feld aus der Datenbank, dargestellt in einer textarea, dann in eine textarea repalced von CKEditor:
Scheint dies in die CKEditor JavaScript-code (wahrscheinlich ein fester Zeichensatz), aber ich kann ihn nicht finden in der config. Wieder, da die é
korrekt angezeigt, im normalen HTML-Format (real UTF-8 é
, nicht é
noch é
), ich bin mir ziemlich sicher, dass es nicht die PHP - /MySQL-Abfrage ist falsch (kann mich aber auch irren).
EDIT: wie es scheint, ein symptom der Anwendung htmlentities
, die standardmäßig die Kodierung Latin-1 auf UTF-8-text. Es gibt entweder die Möglichkeit, den htmlspecialchars
oder geben Sie den Zeichensatz ("utf-8"), aber ich weiß nicht, wo ändern, dass im CKEditor.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diesem thread scheint etwas älter aber Sie zu beantworten helfen, wer auf der Suche nach einer Antwort.
Ermöglichen
CKEditor
zu verarbeiten, den Charakteré
alsé
und nichté
; legen Sie die config fürentities_latin
zufalse
wie folgt:Oder, können Sie nur wollen, stellen Sie folgende Optionen auf false:
config.entities = false;
arbeiten gut für mich.War es mein Ansatz, dass das falsch war, nicht CKEditor ist. War auf der Suche in der falschen Datei und verpasste die UTF-8-Kodierung auf eine
htmlspecialchars
.Können Sie auch in Ihrer Datenbank-Verbindung:
$connection->query("SET NAMES 'utf8'");
Und denken Sie daran, db-und/oder Tabelle Sortierung nach utf8... ich bevorzuge
utf8_general_ci