0

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 で生成されたテキスト入力要素はラテン文字を嫌うようです。

同じ問題がありましたか?

4

1 に答える 1

2

zfフォーラムでこの簡単な解決策を見つけました: bootstrap.phpの関数に
次を追加し、_initView他のすべてを忘れてください:

$view->setEncoding('iso-8859-1');
于 2010-12-27T20:33:30.853 に答える