Проблемы с набором символов в MySQL - PullRequest
3 голосов
/ 15 июня 2011

Я использую VeloSurf с MySQL на Mac, без каких-либо проблем с кодированием, но когда я переключаюсь на компьютер Linux, значения, которые я получаю от VeloSurf, не кодируются правильно.

Я обнаружил, что это можетбыть проблема с набором символов подключения по умолчанию.На Mac я получил:

mysql> show variables like "collation_%";
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | utf8_general_ci   |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

mysql> show variables like "character_set_%";
+--------------------------+--------------------------------------------------------+
| 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.5.11-osx10.6-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------+
8 rows in set (0.00 sec)

В то время как на компьютере с Linux у меня есть:

mysql> show variables like 'collation_%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci | 
| collation_database   | utf8_general_ci   | 
| collation_server     | latin1_swedish_ci | 
+----------------------+-------------------+
3 rows in set (0.00 sec)

mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     | 
| character_set_connection | latin1                     | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     | 
| character_set_results    | latin1                     | 
| character_set_server     | latin1                     | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

При создании базы данных устанавливаются параметры сортировки и набор символов.Моя проблема в том, что я не могу изменить наборы символов по умолчанию для клиента / соединения / результатов.

Кроме того, похоже, нет никакого способа установить charset с velosurf, когда соединение инициируется.

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

В MySQL есть флаг командной строки для установки набора символов.Вы могли бы попробовать это?--default-символьный набор = utf8

1 голос
/ 09 августа 2011

Я обнаружил, что MySQL всегда будет использовать набор символов по умолчанию при подключении от имени пользователя root. Но он работает нормально для ограниченных пользователей (то, что я должен был делать с самого начала).

Эта "особенность", похоже, специфична для Linux. По крайней мере, это не происходит в OS X.

...