Смена кодировки mysql 3.23.54. My.ini => default-character-set=cp1251.

Гриша К.

Новичок
Смена кодировки mysql 3.23.54. My.ini => default-character-set=cp1251.

Здравствуйте.
Пробую сменить кодировку в mysql 3.23.54.
Использую инструкции из статьи http://phpclub.ru/faq/wakka.php?wak...arset&v=1mi

# Настраиваю C:/WINDOWS/my.ini
[mysqld]
default-character-set=cp1251

# Перезагружаю mysql

# Делаю переиндексацию таблиц REPAIR TABLE tbl_name QUICK

Но опять же, при такмо запросе

select DISTINCT cities.cityid, cities.cityrus, orders.pay
from cities left join orders
on cities.cityid = orders.cityid
where cities.countryiso = 'rus' and (cities.cityrus like 'А%')";


Выводятся слова, начинающиеся на буквы: А, Б, В, Г


Подскажите пожалуйста, возможно я что-то делаю не так.
 

Гриша К.

Новичок
SHOW VARIABLES LIKE 'character_set';

Вот такой результат:

Variable_name Value
character_set latin1


Т.е. получается, что натсройка my.ini не на что не повлияла?
Надо что-то еще сделать?
Я вроде бы сделал все что написано в интсрукции http://phpclub.ru/faq/wakka.php?wak...arset&v=1mi

-~{}~ 26.02.06 21:57:

Можно хранить данные в базе в кодировке koi8, а при обмене с клиентом перекодировывать данные на лету windows-1251 -> koi8 при вставке данных и, наоборот, при их выборке. Для этого необходимо в начале сеанса работы с базой сделать запрос: SET CHARACTER SET cp1251_koi8;
Я вот непонял как мне сделать, чтобы я могу на лету изменить кодировку. Попробовал сделать так, увидел что кодировка меняется, вывод остается такой же.

$q = "SET CHARACTER SET cp1251_koi8r";
$r = mysql_query($q);

$query = "select DISTINCT cities.cityid, cities.cityrus, orders.pay
from cities left join orders
on cities.cityid = orders.cityid
where cities.countryiso = 'rus' and (cities.cityrus like 'А%')";

Может быть мне нужно применить такой запрос, ORDER BY BINARY(text_field)

Только, что указать здесь - text_field

========================
Я вот пробовал деалть так,
alter database pozvono9_megapolis
default character set cp1251

но выдается ошибка (в кодировке koi8, я ее перевел)
Какая-то синтаксическая ошибка около 'database pozvono9_megapolis default character set cp1251', в строке 1
 

Апельсин

Оранжевое создание
Автор оригинала: Гриша К.
SHOW VARIABLES LIKE 'character_set';

Вот такой результат:

Variable_name Value
character_set latin1

Т.е. получается, что натсройка php.ini не на что не повлияла?
Так php.ini или my.ini?
 

Гриша К.

Новичок
Ошибся при написании. Делаю настройку в my.ini

Но я вот например щас вообще удалил my.ini, я думал, что без него Mysql не будет работать, но нет все работате. Т.е. получается, что настройки в my.ini у меня ни на что не влияют.

На хостинге я к примеру не смогу изменить my.ini.
Как эту проблему решают.

$q = "SET CHARACTER SET cp1251_koi8r";
$r = mysql_query($q);

и ORDER BY BINARY(text_field)
для этого используют или что делают?
Я в поиске рылся ничего не нашел. В поисковиках лазил.
Ну навернека же многие меняли кодировку mysql, я очень прошу подскажите пожалуйста, как же все таки ее поменять.

-~{}~ 26.02.06 23:45:


В командной строке набрал такие параметры:
mysqld --default-character-set=cp1251

Кодировка по умолчанию стала cp1251


Но как же ее изменить на хостинге. И сайт у меня на нескольких языках. Т.е. если английский, то опять нужна кодировка latin1.
Напишите пожалуйста как это реализовать. Какй должен быть sql запрос к базе данных?
 

SiMM

Новичок
> Т.е. получается, что настройки в my.ini у меня ни на что не влияют.
Т.е. получается что MySQL читает my.ini не оттуда, откуда ты подумал :)
Не помню сейчас, что там с 3.23.54, но по моему my.ini бралось с корня диска C: - читай прилагающиеся инструкции - там должно быть.

> Т.е. если английский, то опять нужна кодировка latin1.
Ненужна.

> Напишите пожалуйста как это реализовать.
Если у тебя на хостинге такой древний MySQL - то если не ошибаюсь, единственное, что ты можешь сделать - это попросить хостера исправить текущее положение вещей.
 

Гриша К.

Новичок
Я пробовал в корне C:/my.cnf, но всеравно без результатно. А вдокументации, написано, что онсначала читает php.ini из C:/windows, а потом my.cnf из C:/
Я решил просто скачать себе mysql 5.0.18,

Спасибо, что разъяснили по поводу тог, что если у меня будет английский язык, что менятть ничего не нужно.

А на хостинге у меня Mysql 4.0.18, все время нетуда смотрел.
Просто я еше пробовал делать подзапросы, ну они конечно не работали (я потом узнал, что только начиная с верскии 4.1).
И мне так в голову втмеяшилось, что у них 3.... какая-то версия. Поэтому я усебя не менял, у меня как раз стоит 3.23.54

Спасибо большое SiMM
за помощь. Теперь все ясно.
 
Сверху