ANSIの代わりにUTF-8を使用するようにWebアプリケーションを更新しました。CKEditor charset
私は文字セットを定義するには、次の対策をした:
mysql_set_charset("utf8"); // PHP
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> // HTML
utf8_general_ci // In MySQL
私はMySQLの全文検索のために正しい文字(すなわちé
なくé
)を必要とするので、私はまたにhtmlentitiesを削除するにはCKEditorバージョン設定を編集しました。データベース(phpMyAdminのビュー)で、通常のテキストに
config.entities = false;
config.entities_latin = false;
が出力(HTML、<input>
または<textarea>
)をフィールド、すべてが(私はé
、ないé
、ないé
、イェーイを参照してください)正常に見えます。
ただし、CKEditorはエンコーディングに問題があります。その後、CKEditorバージョンによってrepalcedテキストエリアで、テキストエリアに表示され、データベースから取得した同じフィールドに添付された画像を参照してください:
これはCKEditorバージョンのJavaScriptコード(おそらく固定文字セット)内にあるように見えますが、私はすることができます設定でそれを見つけられません。また、é
は通常のHTML(実際のUTF-8 é
ではなくé
でもé
でもない)で正しく表示されるため、間違ったPHP/MySQLクエリではないと私は確信しています。
EDIT:htmlentities
を適用すると、これはデフォルトではLatin-1でUTF-8テキストでエンコードされているようです。 htmlspecialchars
を使用するか、または文字セット( "utf-8")を指定する可能性がありますが、をCKEditorのどこで修正するか分かりません。
私にとってうまく動作するのは 'config.entities = false;'です。 – Liko