Я пытаюсь заставить мою таблицу MySQL вести себя как таблица utf8 в примере 2 с этой страницы Справочник по MySQL:
CREATE TABLE germanutf8 (c CHAR(10)) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
INSERT INTO germanutf8 VALUES ('Bar'), ('Bär');
SELECT * FROM germanutf8 WHERE c = 'Bär';
Согласно примеру это должно дать:
+------+
| c |
+------+
| Bar |
| Bär |
+------+
Но все, что я получаю, это просто "Bär". Я делаю что-то неправильно? Следует ли мне изменить свои настройки?
Я пробовал это в MySQL 5.0.45 в Mac OS X и в 5.0.51a в Red Hat.
Обновлено: я попытался установить SET NAMES 'utf8', но это все равно дает тот же результат. После этого мои переменные
+--------------------------+---------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.0.45-osx10.4-powerpc-64bit/share/mysql/charsets/ |
+--------------------------+---------------------------------------------------------------------+






Вы получали какие-либо предупреждения о INSERT?
Вы уверены, что ваш MySQL-клиент правильно интерпретирует то, что вы вводите? Например. Если вы подключаетесь к серверу по SSH и запускаете mysql из командной строки, установлен ли кодировка оболочки и клиентская кодировка mysql на UTF-8?
Вы пробовали бегать
SET NAMES 'utf8'
перед выполнением этих запросов?