Es posible que su base de datos esté configurada en UTF-8, pero la conexión de la base de datos también debe configurarse en UTF-8. Deberías hacer eso con un SET NAMES utf8
declaración. Puede usar las driver_options
en PDO para que lo ejecute tan pronto como se conecte:
$handle = new PDO("mysql:host=localhost;dbname=dbname",
'username', 'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Eche un vistazo a los siguientes dos enlaces para obtener información más detallada sobre cómo asegurarse de que todo su sitio use UTF-8 de manera adecuada: