martes, agosto 11, 2009

Codificando en UTF con PHP y MySQL

El día de hoy tuve un problema al almacenar unos datos UTF-8 captados desde un formulario de PHP, existen al menos 2 formas de abordar éste problema.

1. El más correcto, es establecer en MySQL que la tabla (y por ende cada campo) utilice UTF-8 como código de caracteres por defecto, adicionalmente el archivo de PHP (el código fuente del formulario) deberá estar codificado igualmente enUTF-8, para ello hay que habilitar dicha opción en tu editor de código.
2. La que tuve que utilizar, dado que yo no administro el MySQL del ambiente productivo de ésta solución, fue convertir cada variable $_POST a UTF-8 y luego utilizar htmlentities para parsear acentos y caracteres especiales, el ejemplo es el siguiente:

$nombre = htmlentities(utf8_encode($_POST['nombre']), ENT_COMPAT, 'UTF-8');

Espero que les sea de utilidad

No hay comentarios.: