Zend_Form サブクラスを使用して、データベースのレコードを追加および編集しています。レイアウトには iso-8859-1 エンコーディングと文字セットがあります。テーブル レコードは latin1_spanish_ci 照合を使用します。
レコードにアクセントなどの特殊文字が含まれている場合、フォーム入力テキスト要素には何も表示されません。特殊文字がない場合、フォーム入力テキスト要素はレコードを正しく表示します。不思議なことに、特殊文字がテキスト入力フィールドの外、たとえば Html の見出し 2 や段落内にある場合、特殊文字は正しく表示されます。
application.ini に以下を挿入してみました:
resources.db.params.charset=iso-8859-1
しかし、エラーメッセージが表示されます:
SQLSTATE[42000] [1115] Unknown character set: 'iso-8859-1'
同じ方法で db charset を utf8 に変更することも試みました。フォームのテキスト要素に文字列が表示されますが、元の文字ではなく奇妙な文字が表示されます。
私はほとんど何でも試しましたが、問題は解決していません。Zend_Form で生成されたテキスト入力要素はラテン文字を嫌うようです。
同じ問題がありましたか?