Форум+мускл
#1
Отправлено 20 Апрель 2007 - 16:12
Вопрос: где в скрипте прописать кодировку для мусколы?
#3
Отправлено 24 Апрель 2007 - 16:55
Тему прочёл, но не уловил куда именно сувать, можно поподробней если не сложно!
#4
Отправлено 24 Апрель 2007 - 17:30
Если не сложно, когда разберетесь, напишите решение.
Этот форум о дизайне, тем не менее, очень много вопросов подобных вашему.
Мы ответить на них можем далеко не всегда.
#5
Отправлено 24 Апрель 2007 - 18:11
admin Вторник, 26 Декабря 2006, 19:28 сказал(а):
- создаем файл .htaccess и прописываем нем
AddDefaultCharset windows-1251
- если нужно, то в файлах меняем
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
хотя для 22х мы этого ни разу не делали
- можно в в конфиг MySQL добавить пару строк
/etc/my.cnf
Рассмотрим пример конфига на основе MySQL 5.x.
В раздел [mysqld] необходимо добавить следующее:
default-character-set=cp1251 character-set-server=cp1251 collation-server=cp1251_general_ci init-connect="SET NAMES utf8" skip-character-set-client-handshake
Две последние строки принудительно устанавливают кодировку cp1251 для всех запросов.
В раздел mysqldump достаточно добавить только
default-character-set=cp1251
- Вариант решения проблемы с кодировкой при переносе БД с более старых версий MySQL от 4.1:
перед заливкой бэкапа MySQL со старого хостинга на новый в самом начале файла дампа добавляем
SET collation_connection = cp1251_general_ci; SET collation_database = cp1251_general_ci; SET collation_server = cp1251_general_ci; SET character_set_client = cp1251; SET character_set_connection = cp1251; SET character_set_database = cp1251; SET character_set_results = cp1251; SET character_set_server = cp1251;
заливаем на новый хостинг
ищем файлы, которые отвечают за подключение к БД в Вашем скрипте и прописываем там в правильном оформлении
SET NAMES utf8;, а именно:
открыть \ips_kernel\class_db_mysql_client.php и \ips_kernel\class_db_mysqli_client.php
найти:
if ( ! mysql_select_db($this->obj['sql_database'], $this->connection_id) )
{
$this->fatal_error();
return FALSE;
}вставить после:
mysql_query('SET NAMES utf8');открыть \sources\ipsclass.php и \installl\core\ipsclass.php
найти:
$this->DB->connect()
вставить после:
mysql_query('SET NAMES utf8');-на хостинге должна быть установлена русская локаль cp1251
Попробуйте создайте пустой файл и в нем вставьте функцию:
echo strtolower("ТеСТиРоВние");И посмотрите переведет регистр или нет.
Если нет, то попробуйте так:
setlocale(LC_CTYPE, 'ru_RU.CP1251');
echo strtolower("ТеСТиРоВние");Если и так не переведет, то пишите хостеру, чтобы в Вашей Unix-системе установил нужную локаль.
- для нормального логина с русским ником и регистрации с ним надо
проверить базу данных, а именно таблицы ibf_member_extra, ibf_members , ibf_members_converge,
чтобы в них стояло кодировка cp1251_general_ci
Попробуйте... Сам скоро буду думать над этой проблемой у себя на localhost'е... Как только дойду до нее распишу подробно как и что делать.
#6
Отправлено 19 Июнь 2007 - 21:50
Проапгрэйдил форум до версии 2.3.0 и теперь у меня ??????????????? вместо текста, вариант, помогавший в версии 2.2.2:
Цитата
Находим:
Код
if ( ! mysql_select_db($this->obj['sql_database'], $this->connection_id) )
{
$this->fatal_error();
return FALSE;
}
Вставляем после:
Код
mysql_query('SET NAMES utf8');
здесь не помогает! я знаю, это проблема с кодировкой базы данных, но как это исправить? может что-то прописать или выполнить какой-нибудь запрос к базе???
#8
Отправлено 19 Июнь 2007 - 22:05
#9
Отправлено 19 Июнь 2007 - 22:10
p.s. верните копирайты на форуме в первозданный вид.
#10
Отправлено 19 Июнь 2007 - 22:22
#11
Отправлено 19 Июнь 2007 - 22:24
Ответ простой - в базе не осталось читабельных символов. Как решение - подымать бекап(ы).
#12
Отправлено 19 Июнь 2007 - 22:33
Если мне завтра бэкап хостер поднимет - сегодняшний апгрэйд скрипта форума останется в силе или опять надо будет апгрэйдить и опять кодировка полетит.
#13
Отправлено 19 Июнь 2007 - 22:36
Цитата
Из-за upgrade кодировка не летит
Возможно чуть и летит, когда обновляем форум с русского на английкий, но это решается в 2 минуты, настройкой в "General Settings".
#14
Отправлено 19 Июнь 2007 - 22:41
Я хотел бы знать, после бэкапа я смогу проапгрэйдиться или всё полетит снова?
#15
Отправлено 19 Июнь 2007 - 22:48
Цитата
Ну не может этого быть после обновления, если конечно в conf_global.php не затерялась строка:
$INFO['mysql_codepage'] = 'latin1';
или cp1251, тогда все могло пойти не так как нужно.
Вообще, перед обновлением необходимо делать бекап всех файлов, базы данных. При обновлении быть уверенным 100%-но, что кодировка апгрейтера соответствует кодировке базы данных + лучше всего использовать ручной режим обновления (молча копировать запросы в phpMyAdmin и нажимать 'Далее...').








