Avatar ·

UTF-8 em todo o caminho: como configurar PHP, MySQL e servidor web para funcionar corretamente com cirílico e Unicode

Olá a todos! Sou um desenvolvedor PHP iniciante e já estou ficando tonto com problemas de codificação. O site é escrito em PHP, banco de dados MySQL, servidor Apache. Tudo parece funcionar, mas quando o usuário insere letras russas em um formulário, começa o inferno: no banco de dados são salvos caracteres ilegíveis, como «РџСЂРёРІРµС‚», e ao exibir na página — pontos de interrogação ou quadrados vazios. Tentei colocar `` no cabeçalho HTML — não adiantou. Tentei escrever `header('Content-Type: text/html; charset=utf-8');` no PHP — também não é uma solução milagrosa. No MySQL, as tabelas têm `utf8_general_ci`, mas os dados ainda são corrompidos. Aqui está um exemplo do meu código: ```php query("INSERT INTO users (name) VALUES ('$name')"); // Exibe $result = $db->query("SELECT name FROM users"); while ($row = $result->fetch_assoc()) { echo $row['name']; } ?>