Även om det låter väldigt konstigt att din mysql-data matas ut korrekt där php-strängar misslyckas vid kodning, så skulle jag försöka lösa ditt problem vara att dela upp problemet i steg för att försöka identifiera var denna felkodning genereras!
Först och främst bör du försöka ställa in din default_charset
till utf-8
i filen php.ini, vilket görs så här :
default_charset = "utf-8";
Om du inte kan göra det på grund av leverantörsbegränsningar kanske du fortfarande kan ändra värdet vid körning med ini_set funktion!
Du vill också se till att webbservern är inställd på att mata ut utf-8-kodade filer också! I Apache kan detta göras både i httpd.conf eller med hjälp av htaccess-filer :
AddDefaultCharset UTF-8
Vid det här laget om allt misslyckas, ändå... försök att använda php-rubriker och relativ html-teckenuppsättning :
<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
</body>
</html>
Det är dock väldigt viktigt att dina filer sparas med en lämplig kodning också (utf-8 är nästan alltid det bättre valet, det hjälper till att förhindra problem ganska mycket). Om du sparade filer med annan kodning än utf-8, förstör dem och skapa nya av deras gamla innehåll. Ibland kan redigerare inte riktigt byta kodning ordentligt när filen väl har skapats, även om notepad++ i allmänhet klarar sig bra på det; använd bara converto to
inte encode in
funktion!
Om det fortfarande inte fungerar, även om jag hoppas att det gör det nu, kan du kolla in några andra php-alternativ som mb_detect_encoding , mb_convert_encoding , htmlentities och htmlspecialchars för att åtgärda problemet!