Mesmo que pareça muito estranho que seus dados mysql sejam emitidos corretamente onde as strings php falham na codificação, a maneira como eu tentaria resolver seu problema seria dividir o problema em etapas tentando identificar onde esse erro de codificação é gerado!
Em primeiro lugar, você deve tentar definir seu
default_charset
para utf-8
dentro do arquivo php.ini, que é feito assim:default_charset = "utf-8";
Se você não puder fazer isso devido a restrições do provedor, ainda poderá alterar o valor em tempo de execução usando o ini_set função!
Você também vai querer ter certeza de que o servidor web está configurado para gerar arquivos codificados em utf-8 também! No Apache isso pode ser feito no httpd.conf ou usando arquivos htaccess:
AddDefaultCharset UTF-8
Neste ponto, se tudo falhar, ainda... tente ir com os cabeçalhos php e o conjunto de caracteres html relativo:
<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
</body>
</html>
É muito importante, porém, que seus arquivos sejam salvos usando uma codificação apropriada também (utf-8 é quase sempre a melhor escolha, ajuda a evitar problemas bastante). Se você salvou arquivos com codificação diferente de utf-8, destrua-os e crie novos a partir do conteúdo antigo. Às vezes, os editores não são realmente capazes de alternar as codificações corretamente depois que o arquivo é criado, embora o notepad++ geralmente faça bem isso; basta usar
converto to
não o encode in
característica! Se ainda não estiver funcionando, embora eu espere que funcione agora, você pode verificar algumas outras alternativas de php como mb_detect_encoding , mb_convert_encoding , htmlentidades e htmlspecialchars para resolver o problema!