Codificação
Uma das primeiras coisas que reparamos quando introduzimos caracteres portugueses numa base de dados e depois os queremos apresentar usando o CakePHP é que os acentos, cedilhas, etc… não aparecem ou são substituidos por outros caracteres.
Para resolver esta questão basta no ficheiro database.php que está na pasta config da vossa aplicação coloquem no encoding UTF8 por exemplo.
var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'port' => '', 'login' => 'user', 'password' => 'password', 'database' => 'database_name', 'schema' => '', 'prefix' => '', 'encoding' => 'UTF8' );
Neste caso a própria base de dados está a usar o UTF8.
ALTER DATABASE
CHARACTER SET utf8
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci
DEFAULT COLLATE utf8_general_ci
;
Depois convém mesmo dar uma ajuda ao browser e dizer que codificação estamos a usar, por isso no layout convém colocar no HEAD:
header('Content-Type: text/html; charset=utf-8');
É possível ainda adicionar a seguinte instrução nas configurações do Apache:
AddDefaultCharset utf-8
Recomenda-se mesmo que tudo seja feito em UTF8 até mesmo a edição dos próprios ficheiros para evitar este tipo de problemas.
Tagged encoding, utf8