私はCakePHPを使用しています。 私は持っています:中国語の文字をフォームに送信すると間違って表示される - UTF8エンコーディング全体で使用される
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
が私のテンプレートに設定されています。
Configure::write('App.encoding', 'UTF-8');
が設定されています。 。
database.php - (encoding=>'utf8')
に(、
utf-8
エンコーディングを使用していると私は手動でそれらが正しく保存されている中国語の文字を入力する場合
、と私は何の問題もなく出力、それらをすることができます
このスクリーンショットは出力を示しています。
ナンバー1は、(utf8_unicode_ci
を使用して)私は手動で私のMySQLデータベースにで中国語の文字を貼り付けた結果である。
4と5は私のフォームから中国語の文字を投稿するときに起こることです - わかりにくいばかげています。
<form action="/controller/add" accept-charset="utf-8" id="ControllerAddForm" method="post">
ので、utf-8
文字を受け入れなければならない:
フォーム符号化があります。私はそれらを入力することができます。彼らはテキストボックスに大丈夫と表示されますが、私が提出したものはひどく乱されてしまいます。
アイデア?
ユーザーに渡されたヘッダをチェックすると、Firefoxで放火犯は何を言ってんを使用しています... UTF-8互換の文字ではありません(それはhtml/textエンコーディングutf8?):あなたのファイルはbomなしでutf8として保存されていますか? – mark
ちょうどいくつかの考え - DBに挿入される前にPOSTedフォームのデータはOKですか?もしそうなら、mysqlプロンプトから手動でSELECTクエリを実行するだけでなく、Cake経由でfind()を実行するときにデータが変更されますか?また、database.phpでUTF8を設定しても、データベースがUTF8であるとは限りません。デフォルトのcharsetを確認するには、SHOW CREATE TABLE table_nameを実行します。ありがとうございます; – Brian