Při práci s UTF8 existuje několik bodů selhání:
-
ujistěte se, že tabulka je utf8
Použijte příkaz SQL
Show Variables;
zkontrolovat nastavení znaků MySQL pro tabulku. -
vložená data jsou utf8
Můžete vyzkoušet nástroje jako phpMyAdminer nebo Správce zkontrolovat, zda jsou
data vložena správně. Zkuste vložit data pomocí nástroje ručně. Při vkládání pomocí skriptu nepoužívejte základní funkce řetězce. Vždy používejte jejich alternativy mbstring. Nastavtemb_internal_encoding( 'UTF-8' );
aby PHP zpracovalo UTF-8 interně. -
načtená data jsou utf8
Použil bych pouze
$pdo->exec("SET NAMES utf8");
a zbytek zahodit. ProtožeSET NAMES x
je ekvivalentní kSET character_set_client = x; SET character_set_results = x; SET character_set_connection = x;
-
zobrazená data jsou utf8
Pokud se toto zobrazuje na stránce html, nezapomeňte nastavit značku metadat nebo záhlaví
"Content-Type: text/html; charset=utf-8"
.