Selvom det lyder virkelig mærkeligt, at dine mysql-data udsendes korrekt, hvor php-strenge fejler ved kodning, ville den måde, jeg ville forsøge at løse dit problem på, være at opdele problemet i trin, der forsøger at identificere, hvor denne fejlkodning er genereret!
Først og fremmest bør du prøve at indstille dit default_charset
til utf-8
i php.ini-filen, hvilket gøres sådan her:
default_charset = "utf-8";
Hvis du ikke kan gøre det på grund af udbyderbegrænsninger, vil du muligvis stadig være i stand til at ændre værdien under kørsel ved hjælp af ini_set funktion!
Du vil også gerne sikre dig, at webserveren også er indstillet til at udsende utf-8-kodede filer! I Apache kan dette gøres både i httpd.conf eller ved at bruge htaccess-filer :
AddDefaultCharset UTF-8
På dette tidspunkt, hvis alt fejler, så prøv stadig... at gå med php-headere og relative html-tegnsæt :
<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
</body>
</html>
Det er dog meget vigtigt, at dine filer også gemmes ved hjælp af en passende kodning (utf-8 er næsten altid det bedre valg, det hjælper med at forhindre problemer ret meget). Hvis du har gemt filer med en anden kodning end utf-8, skal du ødelægge dem og oprette nye ud af deres gamle indhold. Nogle gange er redaktører ikke rigtigt i stand til at skifte kodning korrekt, når først filen er oprettet, selvom notepad++ generelt klarer det godt; bare brug converto to
ikke encode in
funktion!
Hvis det stadig ikke virker, selvom jeg håber det gør det nu, kan du tjekke nogle andre php-alternativer som mb_detect_encoding , mb_convert_encoding , htmlentities og htmlspecialchars for at løse problemet!