Assim que comecei a trabalhar com Zend_Form experimentei um erro com htmlspecialchars(), que me tomou algumas longas horas para identificar e gostaria de compartilhar a solução (simples, rápida e fácil).
A mensagem de erro era a seguinte:

Warning: htmlspecialchars() [function.htmlspecialchars]: charset `utf8′ not supported, assuming iso-8859-1 in C:\app\lib\Zend\View\Abstract.php on line 837

Isso aconteceu com a versão 1.7.7 e 1.8.0 do ZF.
Ok, o passo-a-passo da resolução do problema foi:
1 – PHP.net, função htmlspecialchars(), pode assumir como valor do seu terceiro parâmetro, a string ‘UTF-8′
2 – Fui até C:\app\lib\Zend\View\Abstract.php on line 837
return call_user_func($this->_escape, $var, ENT_COMPAT, $this->_encoding);
Onde $this->_encoding é setado na linha 851, e de fato estava setando ‘utf8′ ao invés de ‘UTF-8′
3 – Fui até o arquivo de configurações da minha aplicação e reparei que a mesma config de charset que estava utilizando na conexão com o banco ‘utf8′ (exigido desta forma pelo PDO), estava também sendo usado para o htmlspecialchars()
4 – Criei outra constante no config da aplicação voltada para atender ao charset da aplicação como um todo, e pronto. Funcionou.



No Responses Yet to “Erro com Zend_Form e htmlspecialchars()”  

  1. No Comments Yet

Leave a Reply