Posts Etiquetados ‘utf8’

Acentos, ñ, y caracteres UTF-8 en CakePHP 1.2 y MySQL

Cuando utilizo CakePHP 1.2, la mayoria de las veces obtengo errores en los acentos, ñ, o caracteres especiales UTF-8 al momento de extraer la información de una tabla MySQL latin1, el problema principal es que olvido poner SET NAMES UTF-8 a cada una de las llamadas a la base de datos, así como poner el charset=utf-8 en el layout.

La solucion es:

En mi views/layouts/default.ctp, entre los tags de <head> y </head>:

echo $html->charset('utf-8');

Y crear el archivo app_model.php en el folder app/ con el siguiente contenido:

class AppModel extends Model {
 
	function __construct()
	{
		parent::__construct();
		$this->query("SET NAMES 'utf8'");
	}
}

Nota: Primero va el parent::__construct(); ya que antes de que podamos ejecutar cualquier query en el modelo (o usar $this), éste debe de ser instanciado.

Esto ejecutará por default SET NAMES ‘utf-8′ en todas las queries… no es una forma ideal pero saca del problema.

Posteado el Agosto 16th, 2008 por netors  |  No Comments »