UTF-8, PHP, PDO, MySQL e problemas com acentuação

Em algumas situações mesmo com todo o sistema configurado para se trabalhar com a codificação UTF-8 pode acontecer de serem exibidos caracteres “estranhos”, principalmente os de acentuação.

UTF-8, PHP, PDO, MySQL e problemas com acentuação

Muitos destes casos acontecem ao se trabalhar com a combinação de MySQL e PDO, para se resolver este problema pode-se utilizar a seguinte solução:

$dbh = new PDO(
    'mysql:host=localhost;dbname=dbname',
    'username',
    'password',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')
);

O quarto parâmetro PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' será executado toda vez que houver uma conexão com o banco de dados.