Как заставить Zend_Form отображать специальные символы в текстовых элементах? - PullRequest
0 голосов
/ 27 декабря 2010

Я использую подкласс Zend_Form для добавления и редактирования записей в базе данных. Макет имеет кодировку iso-8859-1 и кодировку. В записях таблицы используется сопоставление latin1_spanish_ci.
Текстовый элемент ввода формы вообще ничего не отображает, когда запись содержит специальные символы, такие как акценты. Если специальных символов нет, элемент ввода текста формы отображает запись правильно. Любопытно, что специальные символы отображаются правильно, когда они появляются за пределами поля ввода текста, например, внутри заголовка HTML2 или абзаца.

Я попытался вставить в application.ini следующее:

resources.db.params.charset=iso-8859-1  

но я получаю сообщение об ошибке:

SQLSTATE[42000] [1115] Unknown character set: 'iso-8859-1'  

Я также попытался таким же образом изменить кодировку БД на utf8. Текстовый элемент формы отображает строку, но я получаю странные символы вместо оригинальных.

Я пробовал почти все, но я не решил проблему. Кажется, что элементы ввода текста, созданные с помощью Zend_Form, ненавидят латинские символы.

У вас была такая же проблема?

1 Ответ

2 голосов
/ 27 декабря 2010

Я нашел это простое решение на форуме zf:
Добавьте следующее к вашей _initView функции в bootstrap.php и забудьте обо всем остальном:

$view->setEncoding('iso-8859-1');
...