Проблема с кириллицей с moodle-1.5.3 + mysql-4.1.14 + cp1251

Проблема с кириллицей с moodle-1.5.3 + mysql-4.1.14 + cp1251

от Aliaksandr Shvayakou -
Количество ответов: 2
ставлю moodle-1.5.3 + mysql-4.1.14 + cp1251
работает все под linux
Если использовать mysql-4.0 то все нормально, но использовать 4.0 неразумно.
Появляются новые приложения не работающие с версиями старше 4.1, дальше их будет больше.
mysql 4.1 и более новые версии отличаются тем, что  хранят данные
в одном формате, а выдают в требуемом.
В конфиге /etc/my.cnf все языковые переменные установлены в  cp1251
character set client     cp1251     
character set connection    cp1251     
character set database     cp1251     
character set results     cp1251     
character set server     cp1251     
character set system    utf8
Несмотря на наличие определенных умолчальных значений Данные которые движок получает от mysql упорно выводятся в utf8
mysql 4.1 и более новые версии отличаются тем, что  хранят данные
в одном формате, а выдают в требуемом.
Это можно задать примерно так в phpmyadmin
SHOW TABLE STATUS;
set character_set_client='cp1251';
set character_set_results='cp1251';
set collation_connection='cp1251_general_ci';
select * from mdl_course;
или в каждую форму запроса добавить код
<?php
mysql_query
("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
?>
Но это невозможно и глупо.
Что делать будем???
Ставлю сейчас mysql-5.0.16 может поможет, возможно это глюк или фича версии 4.1
В ответ на Aliaksandr Shvayakou

Я поставил moodle на последний php с последним-же MySql - для работы в UTF-8

от Ne Nashev -
Я поставил последнюю moodle на последний php с последним-же MySql - для работы в UTF-8, чтобы 1) иметь возможность работать с несколькими языками одновременно.

Пришлось решить несколько проблем именно с версией MySql и чтением/сохранением данный в базе в корректном виде.

В ближайшее время я собирался начать описывать здесь сделаные изменения, но раз уж вопрос уже возник, сделаю для начала чуть роще: дам ссылку на форум (туда есть гостевой доступ) в котором я отмечал сделанные изменения: http://forum.fschool.ru/mod/forum/view.php?id=4

Касаемо вопроса - темы http://forum.fschool.ru/mod/forum/discuss.php?d=12, http://forum.fschool.ru/mod/forum/discuss.php?d=13, http://forum.fschool.ru/mod/forum/discuss.php?d=47 и http://forum.fschool.ru/mod/forum/discuss.php?d=48. Это темы создававшиеся по мере решения проблем, и они несколько запутаны получились. Но пока может быть этого будет достаточно чтобы что-то решить или понять, а в ближайшие недели я тут оформлю результаты тех дел последовательно.

P.S.: Может быть, удобнее будет читать мои сообщения так: http://forum.fschool.ru/mod/forum/user.php?id=3&course=2&mode=posts&perpage=50&page=0

В ответ на Aliaksandr Shvayakou

Re: Проблема с кириллицей с moodle-1.5.3 + mysql-4.1.14 + cp1251

от Aliaksandr Shvayakou -
Поборол кажется.
Наверняка это еще пригодится многим и не только для moodle.
Именно этот параметр заставляет сиквел выдавать нужную кодировку
set character_set_results='cp1251'
Определение глобальных значений в my.cnf не дает эффекта.
Пересборка с указанием
cp1251 не дает ничего.
Увы, но пришлось пройти огонь и воду, призвать на помощь всех богов и полубогов  чтобы найти в инете нужную комбинацию опций для /etc/mysql/my.cnf
###########
[mysqld]
default-character-set           = cp1251
init-connect="SET NAMES cp1251"
###########
Проверено на версии mysql-4.1.14 под linux gentoo
Учтите, это не работает для суперюзеров mysql типа root@localhost
Это не работает с mysql-5.0.16-r3, он не стартует

Для случаев когда все это не проходит или не подходит, прикладываю модифицированный adodb-mysql.inc.php от версии 1.5.3
Там вставлена пара костылей для решения проблемы.