Задавайте вопросы, мы ответим
Вы не зашли.
Ребята, привет всем!
Не подскажите как настроить консоль MySQL для работы с кириллицей?
Например есть таблица:
Отредактированно FiMko (11.04.2010 21:36:53)
Неактивен
Ключевой момент:
Текущая кодовая страница консоли Windows: 866
Тут paulus когда-то давно писал, как виндовую консоль заставить поменять кодировку, кажется... (я уж не помню)
Неактивен
Кодировка виндовой консоли неправильно определяется сервером, отсюда и проблемы. В начале работы нужно явно указать используемую вами кодировку
SET NAMES cp866;
Как сменить кодировку консоли:
http://sqlinfo.ru/forum/viewtopic.php?pid=6440#p6440
Неактивен
У виндовой команды chcp своя нумерация кодировок, поэтому чтобы использовать UTF-8, надо написать:
chcp 65001
Неактивен
Не помогло...
c:\WebServers\usr\local\mysql5\bin>chcp 65001 Текущая кодовая страница: 65001 c:\WebServers\usr\local\mysql5\bin>mysql.exe -u root -p mysql> connect db; mysql> select * from words where word="тест"; ничего... mysql> select * from words; +-------+---------+ | id | word | +-------+---------+ | 1 | | <- пусто +-------+---------+ mysql> exit Bye
c:\WebServers\usr\local\mysql5\bin>chcp 866 Текущая кодовая страница: 866 c:\WebServers\usr\local\mysql5\bin>mysql.exe -u root -p mysql> connect db; mysql> SET NAMES cp866; mysql> select * from words where word="тест"; Empty set, 1 warning (0.05 sec) mysql> show warnings; +---------+------+-------------------------------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------------------------------+ | Warning | 1366 | Incorrect string value: '\xA0\xAA\xA0' for column 'word' at row 1 | +---------+------+-------------------------------------------------------------------+
Отредактированно FiMko (11.04.2010 22:35:22)
Неактивен
Методом подбора пришел к правильному отображению в консоли:
c:\WebServers\usr\local\mysql5\bin>chcp 866 Текущая кодовая страница: 866 c:\WebServers\usr\local\mysql5\bin>mysql.exe -u root -p mysql> set names cp866; mysql> connect db; mysql> select * from words; +-------+---------+ | id | word | +-------+---------+ | 1 | тест | +-------+---------+ mysql> insert into words (word) values ("мама"); mysql> select * from words; +-------+---------+ | id | word | +-------+---------+ | 1 | тест | +-------+---------+ | 2 | мама | +-------+---------+
Отредактированно FiMko (12.04.2010 00:13:25)
Неактивен
Код:
c:\WebServers\usr\local\mysql5\bin>chcp 65001 Текущая кодовая страница: 65001 c:\WebServers\usr\local\mysql5\bin>mysql.exe -u root -p mysql> connect db; mysql> select * from words where word="тест";
А чего ж здесь-то SET NAMES UTF-8 не выполнили?
Неактивен
LazY написал:
Код:
c:\WebServers\usr\local\mysql5\bin>chcp 65001 Текущая кодовая страница: 65001 c:\WebServers\usr\local\mysql5\bin>mysql.exe -u root -p mysql> connect db; mysql> select * from words where word="тест";А чего ж здесь-то SET NAMES UTF-8 не выполнили?
Дык делал...
c:\WebServers\usr\local\mysql5\bin>chcp 65001 Текущая кодовая страница: 65001 c:\WebServers\usr\local\mysql5\bin>mysql.exe -u root -p mysql> set names utf8; mysql> connect lexikos; mysql> select * from words; +-------+---------+ | id | word | +-------+---------+ | 1 | | <- пусто +-------+---------+ 5 rows in set (0.00 sec)
Выдача есть, но "пустая". Шрифт консоли Lucida Concole.
---
"Полезные" ссылки для потомков (может что-то из приведенного поможет вам решить проблемы и следовательно сэкономит время на поиск):
Кодировка в MySQL 5.1
Проблемы с кодировкой в MySQL версий 4.1+
См. пункт "Некоторые замечания для Win 32 платформы"
cmd.exe + mysql.exe = только cp1251?
Отредактированно FiMko (12.04.2010 00:32:12)
Неактивен