2011-07-11 10 views
0

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の全文検索のために正しい文字(すなわちéなく&eacute;)を必要とするので、私はまたにhtmlentitiesを削除するにはCKEditorバージョン設定を編集しました。データベース(phpMyAdminのビュー)で、通常のテキストに

config.entities = false; 
config.entities_latin = false; 

が出力(HTML、<input>または<textarea>)をフィールド、すべてが(私はé、ない&eacute;、ないé、イェーイを参照してください)正常に見えます。

ただし、CKEditorはエンコーディングに問題があります。その後、CKEditorバージョンによってrepalcedテキストエリアで、テキストエリアに表示され、データベースから取得した同じフィールドに添付された画像を参照してください: CKEditor Encoding Problems

これはCKEditorバージョンのJavaScriptコード(おそらく固定文字セット)内にあるように見えますが、私はすることができます設定でそれを見つけられません。また、éは通常のHTML(実際のUTF-8 éではなく&eacute;でもéでもない)で正しく表示されるため、間違ったPHP/MySQLクエリではないと私は確信しています。

EDIT:htmlentitiesを適用すると、これはデフォルトではLatin-1でUTF-8テキストでエンコードされているようです。 htmlspecialcharsを使用するか、または文字セット( "utf-8")を指定する可能性がありますが、をCKEditorのどこで修正するか分かりません。

答えて

0

私のアプローチは間違っていましたが、CKEditorのものではありませんでした。間違ったファイルを探していて、htmlspecialcharsでUTF-8エンコーディングを見逃しました。

7

このスレッドは、少し日付がついているようですが、回答を探している人を助けるために回答しています。

は、ééと処理し、&eacuteではないことを許可します。また、あなたのデータベース接続に使用することができます

config.entities = false; 
config.basicEntities = false; 
+2

私にとってうまく動作するのは 'config.entities = false;'です。 – Liko

-1

config.entities_latin = false; 

それとも、あなただけのfalseにオプションを次のように設定することもできます。以下のように、falseからentities_latinのための設定を設定$connection->query("SET NAMES 'utf8'"); をとdbとテーブルの照合順序をutf8に設定することを忘れないでください。私は好きです。utf8_general_ci

関連する問題