powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как изменить кодировку для индекса?
12 сообщений из 12, страница 1 из 1
Как изменить кодировку для индекса?
    #33339356
Anton-3000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. При создании индекса FULLTEXT используется не та кодировка которая мне нужна. Как можно ее поменять на cp1251 ?

Заранее благодарен.
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33340010
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton-3000Здравствуйте. При создании индекса FULLTEXT используется не та кодировка которая мне нужна. Как можно ее поменять на cp1251 ?

Заранее благодарен.
Откуда это известно? и какая кодировка поля, по которому делается индекс?
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33340262
Anton-3000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это известно из опыта - английские слова ищутся, а русские - нет.

А как узнать кодировку поля, по которому делается индекс?
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33341440
ultrabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
collate cp1251_general_ci при создании поля по которому строиться Index
и еще
если в Мускле кодировка по умолчанию не cp1251_general_ci

set character_set_client='cp1251';
set character_set_results='cp1251';
set collation_connection='cp1251_general_ci';

После сего ищет без проблем
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33342386
Anton-3000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ultrabyte, спасибо за ответ. У меня тут возник еще один вопрос: дело в том, что поля по которым я хочу создать индекс FULLTEXT нормально воспринимают русские символы, я боюсь, что если я поменяю их кодировку, то данные в этих полях будут испорчены...

А можно ли изменить кодировку поля, если у меня уже есть БД, таблицы и поля, а в них уже много записей? Не попортит ли это данные?
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33342589
Welly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно ли изменить кодировку поля, если у меня уже есть БД, таблицы и поля, а в них уже много записей? Не попортит ли это данные?
Может испортить, особенно, если вы преобразование между разнобайтовыми кодировками. В общем, нужно делать в два этапа - сконвертить вначале в независимую кодировку типа binary или utf8, а потом далее в нужную. Попробуйте вначале на тестовой копии, какой из способов вам больше подходит.
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33342593
Welly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
set character_set_client='cp1251';
set character_set_results='cp1251';
set collation_connection='cp1251_general_ci';

Достаточно
Код: plaintext
1.
SET NAMES 'cp1251'
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33343754
ultrabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попортит однозначно поэтому Welly правильно сказал
либо в два этапа либо создай темповую таблицу с полями в кодировке 1251
и потом в неё данные перенеси.
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33343757
ultrabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Welly set character_set_client='cp1251';
set character_set_results='cp1251';
set collation_connection='cp1251_general_ci';

Достаточно
Код: plaintext
1.
SET NAMES 'cp1251'



Если просто с с Муслом работаешь достаточно.

а если к нему через клиента обращаешь PHP или C например
то клиента надо указывать
set character_set_client='cp1251';
set character_set_results='cp1251';

притом в самом клиенте после соединения с базой.
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33343902
Anton-3000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура! Все работает. Без вашей помощи не разобрался бы. Всем спасибо. Мне просто нужно было добавить следующие строки:

Код: plaintext
1.
2.
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33344177
Welly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если просто с с Муслом работаешь достаточно.

а если к нему через клиента обращаешь PHP или C например

Так любое приложение, которое цепляется к MySQL - это и есть клиент ;) Пишу на Delphi (через libmysql.dll, никаких отличий от кода на C), SET NAMES оказывается достаточно.
...
Рейтинг: 0 / 0
Как изменить кодировку для индекса?
    #33344181
Welly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот что говорит MySQL Reference

NAMES {'charset_name' | DEFAULT}

SET NAMES sets the three session system variables character_set_client, character_set_connection, and character_set_results to the given character set. Setting character_set_connection to charset_name also sets collation_connection to the default collation for charset_name.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как изменить кодировку для индекса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]