Ich möchte euch schnell einen kleinen Trick zu meinem Lieblingsthema Encoding und I18N zeigen. In CakePHP ist zwar in der nächsten größeren Version eine I18N Unterstützung geplant, ich weiß jedoch nicht in wie weit diese schon implementiert wurde. Natürlich haben wir keine Zeit auf diese Version zu warten.
Wenn man die Daten seiner Model UTF-8 kodiert vom Datenbankserver bekommen will, muss man wie bekannt sein sollte, bei jeder neuen Verbindung zuerst das “set names ‘utf8′” SQL Statement absetzen um dem Server die Kodierung mitzuteilen. In CakePHP hat man die Möglichkeit bei “beforeFind” einzuhacken. Das ist jedoch keine optimale Lösung, da dann vor jedem Query dieses Statement abgesetzt wird. Besser ist folgende Methode, indem der Konstruktor des AppModel erweitert wird:

class AppModel extends Model
{
  function __construct($id=false, $table=null, $ds=null) {
    parent::__construct($id, $table, $ds);
    $this->execute( "SET NAMES 'UTF8'" );
  }
}

Auf GetTheAnswer gibt es von mir ein etwas ausführlicheres Tutorial zu Encoding jedoch in Englisch.