Es importante asegurarse de trabajar con una conexión a bases de datos que utilice el encoding oportuno coincidente con el establecido en la base de datos y en la presentación de la web. En PHP con MySQL es sencillo hacerlo, pero hay que acordarse...
Utilizando las funciones mysql_*:
Para acceso a través de las PDO:
Utilizando las funciones mysql_*:
$server = 'localhost';
$user = 'dbuser';
$password = 'dbpass';
$con = mysql_pconnect($server, $user, $password);
if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_query("SET NAMES 'utf8';") or die(mysql_error());
Para acceso a través de las PDO:
$dsn = 'mysql:dbname=testdb;host=127.0.0.1;port=3333';
$user = 'dbuser';
$password = 'dbpass';
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'");
try {
$pdo = new PDO($dsn, $user, $password, $options);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}