Istnieje wiele punktów awarii podczas pracy z UTF8:
-
upewnij się, że tabela jest utf8
Użyj polecenia SQL
Show Variables;
aby sprawdzić ustawienia znaków MySQL dla tabeli. -
wstawione dane to utf8
Możesz wypróbować narzędzia takie jak phpMyAdminer lub Administrator aby sprawdzić, czy
dane są prawidłowo wstawione. Spróbuj wstawić dane ręcznie za pomocą narzędzia.Podczas wstawiania za pomocą skryptu nie używaj podstawowych funkcji ciągów. Zawsze używaj ich mbstringalternatywnych. Ustawmb_internal_encoding( 'UTF-8' );
aby PHP obsługiwał UTF-8 wewnętrznie. -
pobrane dane to utf8
Używałbym tylko
$pdo->exec("SET NAMES utf8");
i upuść resztę. PonieważSET NAMES x
jest odpowiednikiemSET character_set_client = x; SET character_set_results = x; SET character_set_connection = x;
-
wyświetlane dane to utf8
Jeśli jest to wyświetlane na stronie html, nie zapomnij ustawić metatagu lub nagłówka
"Content-Type: text/html; charset=utf-8"
.