3 ответов:
character_set_client,_connectionи_resultsвсе должно бытьutf8чтобы этот торт был съедобным.что-то, где-то, устанавливает подмножество тех, кто индивидуально. Поройтесь у меня.настройки cnf и phpmyadmin-что-то не устанавливает все три.
если
SET NAMES utf8выполнена, все три установлены правильно.солнце светило, потому что это только 3 байта -
E2 98 80; utf8 достаточно для 3-байтовых кодировок символов Юникода utf8.
вероятно, что ваша служба/приложение подключается к" utf8 "вместо" utf8 " для набора символов клиента. Это зависит от клиентского приложения.
для PHP-приложения см. http://php.net/manual/en/function.mysql-set-charset.php или http://php.net/manual/en/mysqli.set-charset.php
для приложения Python см. https://github.com/PyMySQL/PyMySQL#example или http://docs.sqlalchemy.org/en/latest/dialects/mysql.html#mysql-unicode
кроме того, проверьте, что ваши колонки действительно utf8. Один прямой путь выглядит так:
mysql> SELECT character_set_name FROM information_schema.`COLUMNS` WHERE table_name = "user" AND column_name = "displayname"; +--------------------+ | character_set_name | +--------------------+ | utf8 | +--------------------+ 1 row in set (0.00 sec)
для меня оказалось, что проблема кроется в mysql клиенте.
обновления клиента mysql
my.cnf' s char настройки на сервере, и в результате непреднамеренной настройки символов.Итак, что мне нужно сделать, это просто добавить
character-set-client-handshake = FALSE. Он отключает настройку клиента от нарушения моей настройки char.
my.cnfбудет.[mysqld] character-set-client-handshake = FALSE character-set-server = utf8 ...надеюсь, что это помогает.
Comments