--}}
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем

Mysql и кодировки

5
12
С друзьями на NN.RU
В социальных сетях
Поделиться
Alex5252
01.05.2006
Есть форум на phpBB http://www.forum.22vm.nnov.ru/ Проблема в том, что кодировка, в которой выдавается база из mysql - не соответстсвует нужной. Т.е. должна выдаваться cp1251, а выдается как сз1251 перекодированная в utf8. Выглядит так: если в браузере на данном форуме выбрать cp1251 - то html часть будет по русски, а вот данные из базы будут выдаваться как cp1251 переконвертироанные в utf8. Т.е. если в браузере на данном форуме выбрать utf8 - то html часть будет кракозяблами, а вот данные из базы будут выдаваться в читаемом виде.
База есть в бекапах (экспортировано ранее).
На данном этапе не могу данную базу импортировать так, чтобы выводимая из базы кодировка была cp1251.
Читал разные маны по mysql - ничего не помогает.
если в секции [mysqld] в my.cnf прописать:
character-set-server = cp1251
default-character-set = cp1251
то данный форум начинает отдавать информацию нормально, а вот другой сайт (www.22vm.nnov.ru) - нет (также теряется корректная кодировка)

При таких настройках в секции [mysqld] в my.cnf :
character-set-server = utf8
default-character-set = utf8
не работает кодировка форума.
Кто знает, где и что почитать, или каким образом при импорте можно указать кодировку?
ПО: apache-2.0.55, mysql-4.1.14, php-5.1.2, phpBB-2.0.19, phpmyadmin-2.8.0.3,.
ОС: Gentoo Linux.
nnstepan
01.05.2006
А локаль какая у тебя в генту стоит?
LC_ALL=? Т.е. уникод у тебя включен или нет?
Какая дефолтная кодировка в Апаче?
Форум состоит из нескольких фреймов?
Alex5252
01.05.2006
nnstepan писал(а)
А локаль какая у тебя в генту стоит?
LC_ALL=? Т.е. уникод у тебя включен или нет?

zxc alex # locale
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC=POSIX
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES=POSIX
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=


nnstepan писал(а)
Какая дефолтная кодировка в Апаче?

Предполагаю koi8-r.
Однако phpBB выдается в cp1251 (charset=windows-1251 - пишется в заголовках html страницы, после получения ее браузером)

nnstepan писал(а)
Форум состоит из нескольких фреймов?

стандартный phpBB...

А вообще - ощущение, что mysql не принимает к сведению инструкций перекодирования:
SET NAMES utf8;
SET CHARACTER SET utf8;
set character_set_server = utf8;
менял по-разному данные директивы в теле файла импортирования (при восстановлении базки), однако данные директивы игнорируются, т.к. не меняются. И реагирует только на SET NAMES utf8; И если ее не вводить в таком виде, то в базу импортируются пустые символы.
nnstepan
02.05.2006
Alex5252 писал(а)
nnstepan писал(а)
Какая дефолтная кодировка в Апаче?

Предполагаю koi8-r.


Дык надо точно посмотреть что в конфтге апача написано и порядок приоритетов какой...

Сам форум не видел, но если он фреймовый, то кодировка выставляется для каждого фрейма отдельно...
Stinky
01.05.2006
На ЛУГе был же вариант через enca дамп конвертнуть. Правда в том виде, в котором он там есть, паганятся некоторые SQLные команды. :)
'cat utf.sql | enconv -L russian -x cp1251 >> correct.sql' вроде номально пашет. Собсно один скрин с сознательно испаганеной UTFом базой, другой с конвертнутой обрано в cp1251. Поганил, правда, тоже через enca. Дампил/восстанавливал phpMyAdmin'ом

ЗЫ: Или в базе оно и так в 1251 лежит? У баз сейчас точно кодировки одинаковые?
Stainless
02.05.2006
апач как настроен?
(hххp://www.22vm.nnov.ru)/)
У тебя страницы идут с кодом 404 - "страница не неайдена", вместо стандартного 200 - "ОК"
В коде страницы у тебя прямо написано:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
т.к. в заголовке ответа ничего не написано, то используфется эта кодировка.

Перекодировка в mysql разных версий сильно разнится, в твоей версии должна работать команда set CHARACTER SET выполняемая при каждом коннекте
http://www.csu.ac.ru/~srg/local_doc/mysql-doc/manual_Charset.html
Idol
02.05.2006
ой намучался я уже с gentoo + mysql +utf8 ;/

Суть вот в чем:
не надо собирать mysql с поддержкой utf8
иначе потом куча всего не работает
+ нормально базы не грузанешь :/

кривая пока связка: gentoo+mysql+utf8
nnstepan
02.05.2006
+1 рано пока в Генту юзать utf8... Лучше KOI8-R.
Idol
02.05.2006

Читал разные маны по mysql - ничего не помогает.
если в секции [mysqld] в my.cnf прописать:
character-set-server = cp1251
default-character-set = cp1251

есть такой параметр, конкретно под BD:
SET CHARACTER
SET LOCALE
ставится через 'консоль управления':
mysql -u root -h <ip> -p
use <db>
set CHARACTER=
set LOCALE=

оч.помогает:
ya.ru -> поиск: mysql locale
вдумчиво читаем ;)
Alex5252
02.05.2006
Спасибо всем ответившим. Чтением рассылок начинаю доходить, что надо откат делать на более молодой mysql. Рекомендуют с 4.1 на 4.0. Счас все базки грохну и пересоздам на старой системе - там видно будет, является ли данный переход решением проблем.
Alex5252
03.05.2006
Откатился на dev-db/mysql-4.0.26. Переимпортировал базы. Все заработало нормально. Спсасибо всем откликнувшимся.
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем
Последние темы форумов
Сетевой фильтр APC Surge Arrest

Сетевой фильтр APC Surge Arrest для радиолюбителя.и не только Отправка в регионы после оплаты. ЦЕНА 3000 руб. В рабочем состоянии....
Цена: 3 000 руб.

Принтер лазерный HEWLETT PACKARD HP-6L

Принтер лазерный HEWLETT PACKARD HP-6L Отправка в регионы после оплаты. 3штуки БУ. Внешний вид из магазина простояли на складе...
Цена: 4 500 руб.

Оперативная память Corsair XMS3 CMX8GX3M2A1600C9

Оперативная память Corsair XMS3 CMX8GX3M2A1600C9 Отправка в регионы после оплаты. Продаются сразу обе. Цена за обе 2000 руб....
Цена: 1 000 руб.

Материнские платы на запчасти и не только

Материнские платы на запчасти и не только Материнские платы и другие комплектующие Отправка в регионы после оплаты. Транспортной...
Цена: 3 000 руб.