Dlouho jsem se potýkal se stejným problémem. Spusťte tento dotaz, jakmile se připojíte k databázi a vaše webová aplikace zobrazí znaky tak, jak se objevují v phpmyadmin:
SET NAMES 'utf8'
Z nějakého důvodu je MySQL v mých systémech nastaveno tak, že předpokládá, že vstup a výstup jsou zakódovány jako latin1, což znamená, že když jej pošlu utf8 vstup, uloží jej do databáze nesprávně, ale protože je konverze pro výstup obrácena, nepořádek je vrácen a v prohlížeči se zobrazuje správně (kromě použití phpmyadmin, který to zobrazuje věrně). To platí pouze v případě, že výsledkem převodu jsou znaky, které jsou povoleny znakovou sadou použitou v poli databáze, kde jsou uloženy, takže můžete získat chyby, pokud převod nezastavíte pomocí výše uvedeného dotazu.