АРМАДА
Кодировка БД
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

densa
Гуру
Зарегистрирован: 27.06.2006
Сообщений: 1018
Обратиться по нику
# Добавлено:Пт Сен 19, 2008 12:25 pmДобавить в избранноеОтветить с цитатой
Такая ситуевина
Есть у меня русскоязычный блог на ВП, прикрутил к нему недавно форум BBpress, все хорошо люди на форуме начинают понемногу общаться, но вот стал ложать хостинг, решил его сменить. Делаю дамп базы, там то что касается самого ВП все гуд, а вот то что касается форума хрен пойми в какой кодировки, в дампе вижу такое
Код:
После кесарева РїСЂРѕС?ло 5месяцев, Р° РЅР° теле 7РєРі лиС?РЅРёС…. После 2 месяцев РІ



на самом форуме все нормально по-русски отображается
подскажите есть ли способы что бы в дампе были нормальные русские буквы?
Узнай как отдохнуть в Таиланде самостоятельно
Я болею за Ермак

ctapbiu
Опытный
Зарегистрирован: 06.01.2008
Сообщений: 328
Обратиться по нику
# Добавлено:Пт Сен 19, 2008 1:12 pmОтветить с цитатой
а чем дамп смотришь?
это утф-8, если есть возможность во вьювере переключиться на утф-8, то переключись

кстати неплохой скриптец для бэкапов БД (MySQL): http://sypex.net/

-=Faraon=- +
Опытный
Зарегистрирован: 29.08.2008
Сообщений: 114
Обратиться по нику
# Добавлено:Пт Сен 19, 2008 1:42 pmОтветить с цитатой
Зачем тебе видеть что в дампе. Он там разберёться сам кодировка то выставлена!
Фарма на пике популярности. Evapharmacy.ru – 5 лет с Вами!

Вацлав
Сетевой Гугляка
Зарегистрирован: 21.02.2006
Сообщений: 4965
Обратиться по нику
# Добавлено:Пт Сен 19, 2008 2:09 pmОтветить с цитатой
densa, Мускул 4-ый установлен? У него есть некоторые "закидоны" с кодировками.

Цитата:
Обратите внимание!

MySQL 5 имеет некоторые несовместимости с предыдущими версиями, полный список несовместимостей вы найдете здесь.
Проблемы с кодировками

Основная проблема, с которой сталкиваются пользователи при переходе с версий до 4.1 — проблема с кодировками. Причина данной проблемы в том, что MySQL 5 хранит все данные в кодировке UTF-8. Установленный у нас MySQL настроен так, чтобы при операциях ввода/вывода автоматически конвертировать данные из UTF-8 в Windows-1251 и обратно. Однако в некоторых ситуациях (например, если вы передаете в базу данные в кодировке KOI8-R или UTF-Cool данные могут загружаться ошибочно или не загружаться совсем (на запрос вместо символов будут выдаваться знаки вопроса).

Возможны два варианта:
Клиент использует неправильную кодировку

Симптомы следующие:
а) В phpMyAdmin (версии 2.6.0 или выше) содержимое таблиц отображается корректно, а в скрипт приходят вопросительные знаки.
б) Скрипт отправляет в базу данных заведомо русский текст, после чего на запросы к базе как в скрипт, так и в phpMyAdmin возвращаются знаки вопроса.

Решение:
Попробуйте в начале скрипта, сразу после инициализации соединения с базой данных, выполнить SQL-команду:
SET NAMES кодировка

Где «кодировка» — та кодировка, в которой у вас (по вашему мнению) данные. Это может быть, например, cp1251, koi8r, utf8 и другие.

Если буквы стали русскими — данные в базе находятся в правильной кодировке. Если буквы стали русскими, но слова не читаются (например, вместо слова «вопрос» возвращается слово «бнопня») — надо попробовать другую кодировку.
MySQL использует неправильную кодировку

Симптомы следующие:
Скрипт получает русский текст, но не работают функции сортировки, перевода в верхний/нижний регистр и т.п. Обычно это сопровождается неправильным отображением данных в phpMyAdmin.

Диагностика:

Необходимо попробовать выполнить в phpMyAdmin следующий запрос:
SELECT CONVERT(CONVERT(поле USING binary)
USING кодировка) FROM таблица;
Где «таблица», «поле» — соответственно таблица и ее поле, в котором хранится русский текст, «кодировка» — предполагаемая правильная кодировка. Если данные в результате запроса стали отображаться правильно — необходимо конвертировать таблицу.

Решение:

Обязательно сделайте полный backup вашей базы данных, прежде чем выполнять конвертирование таблиц!
Конвертирование полей происходит следующим образом:

Например, есть таблица T со столбцом R, тип которого CHAR (50). Необходимо конвертировать содержимое данного столбца в кодировку cp1251. Выполняем следующие две команды:
ALTER TABLE T MODIFY R BINARY (50);
ALTER TABLE T MODIFY R CHAR (50) CHARACTER SET cp1251;

Обратите внимание, что после BINARY в скобках указан размер поля. Если вы конвертируете поле типа TEXT, необходимо указать достаточно большое значение. В противном случае текст будет обрезан.

Второе пришествие Вацлава. Камингсуново.

densa
Гуру
Зарегистрирован: 27.06.2006
Сообщений: 1018
Обратиться по нику
# Добавлено:Пт Сен 19, 2008 10:04 pmОтветить с цитатой
ctapbiu писал(а):

кстати неплохой скриптец для бэкапов БД (MySQL): http://sypex.net/



классная програмка справилась на все 100, спасибо
Узнай как отдохнуть в Таиланде самостоятельно
Я болею за Ермак
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры