Odpovím zde, protože je to příliš dlouhé na komentář.
Kódování nemusíte měnit, měli byste to zkontrolovat vaše kódování. Mějte na paměti, že kódování lze změnit na mnoha různých místech:
- Ve vaší databázi s funkcemi znakové sady
- V konfiguraci Apache pomocí AddDefaultCharset
- S php funkcí záhlaví
- Ve vašem html s
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
tag
Kterýkoli z těchto důvodů může vést k nesprávnému kódování zobrazenému ve webovém prohlížeči. A pokud ji nespecifikujete pomocí jedné nebo více předchozích metod, příslušná vrstva použije své nakonfigurované výchozí nastavení.
Ve vašem případě, protože text pochází z databáze a protože MySQL často ve WAMP/XAAMP/MAMP používá podivné výchozí kódování, zkontroloval bych bod jedna. Zkuste spustit SET NAMES UTF-8
(nebo jakékoli kódování, které používáte) dotaz před načítání dat hned po vaší funkci připojení db.