Има множество точки на неуспех при работа с UTF8:
-
уверете се, че таблицата е utf8
Използвайте SQL-команда
Show Variables;
за да проверите настройките на знаците на MySQL за таблицата. -
вмъкнатите данни са utf8
Може да опитате инструменти като phpMyAdminer или Администратор за да проверите дали
данните са въведени правилно. Опитайте да вмъкнете данни чрез инструмента ръчно. Когато вмъквате чрез скрипт, не използвайте основни функции за низове. Винаги използвайте техните mbstring алтернативи. Задайтеmb_internal_encoding( 'UTF-8' );
за да позволи на PHP да обработва вътрешно UTF-8. -
извлечените данни са utf8
Бих използвал само
$pdo->exec("SET NAMES utf8");
и пуснете останалото. ЗащотоSET NAMES x
е еквивалентен наSET character_set_client = x; SET character_set_results = x; SET character_set_connection = x;
-
показаните данни са utf8
Ако това се показва в html страница, не забравяйте да зададете мета таг или заглавка
"Content-Type: text/html; charset=utf-8"
.