1

Zend Form を機能させようとしています。特定のデータベース オブジェクトの挿入と編集に同じフォームを使用しています。オブジェクトには名前があり、「Ülo」という名前の新しいオブジェクトを簡単に作成できます。データベースに正しく保存され、レポートに表示するためにフェッチすると、正しい「Ülo」が表示されます。問題はフォームにあります。編集フォームを開くと、名前要素が空です。他のすべての要素は正しく表示されており、「ü」を含むように変更すると、それらも空で表示されます。フォーム要素のラベルも同じです。「ü」を含むようにラベルを設定すると、ラベルが表示されなくなります。

たとえば、私が持っている場合$name->setLabel('Nameü: ');、ラベルは表示されませんが、元に戻すと$name->setLabel('Name: ');正しいことが表示されます。

同じことをして$bcrForm->name->setValue('Ülo');も値が表示されませんが、変更すると$bcrForm->name->setValue('Alo');正しく表示されます。

正しく表示されるように修正するにはどうすればよいですか?ある種のフォームレンダリングの問題のようです。

4

5 に答える 5

1

これは私のためにそれを解決するのに役立ちました:

これらの設定が /etc/php5/apache2/php.ini と /etc/php5/cli/php.ini にあることを確認してください:

default_charset = utf-8
于 2013-04-17T08:23:10.493 に答える
0

私はチェックします:

  • 文字セットを表示
  • データベース文字セット(バックエンド)
  • Zend_Db_Adapter文字セット
  • ファイル文字セット

ビューエスケープメソッドはutf8文字を期待するように設定されており、他のもの(つまり、シングルバイトの奇妙な文字)を削除する可能性があります:)

于 2012-05-14T15:17:30.527 に答える
0

エンコーディングを確認しましたか?これを頭に追加してみてください...

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
于 2012-05-11T11:14:11.600 に答える
0

スクリプトとビュー ファイルの両方が UTF-8 でエンコードされ、DB への接続も UTF-8 に設定されていることを確認してください。

mysql を使用している場合は、DB 接続を開いて次を実行することにより、強制的に UTF-8 データを返すようにします。SET NAMES 'utf8'

またはmysqliを次のように使用します:mysqli_set_charset('utf8');

于 2012-05-11T15:17:10.533 に答える
0

要素ラベル デコレータでエスケープ フラグを false に設定するのと同じくらい簡単です。

$name->addDecorator('Label', аrray('escape'=>false));

または参照してくださいsetEscape()http://framework.zend.com/manual/1.12/en/zend.form.standardDecorators.html

于 2012-11-28T16:22:20.373 に答える