126 (изменено: НеПодарка, 2010-04-22 15:07:09)

Re: Смена кодировки базы в phpMyAdmin

Hanut сказал:

НеПодарка
Переносить данные надо после того, как разберетесь с кодировками. Связь должна быть следующая, если страницы сайта в windows-1251: кодировка таблиц в БД cp1251 (сравнение cp1251_general_ci); кодировка соединения с MySQL должна быть cp1251.

Первое, кодировка таблиц, назначается при установке скрипта (созданная для скрипта БД должна иметь кодировку cp1251, тогда таблицы создаваемые установщиком тоже будут в этой кодировке.

Второе, кодировка соединения с MySQL, обычно прописывается в конфигурационном файле скрипта. Если у скрипта нет директивы для задания кодировки соединения с MySQL, то необходимо поиском по всем файлам скрипта найти функцию mysql_connect и сразу после нее добавить строку:
[mono]mysql_query('SET NAMES cp1251');[/mono]

Я про это уже писала. Если я всё подвожу к ср1251, то половина сайта отображается в ? и после введения данных в этой кодировке, они все равно в ????.

Если я ввожу новости на сайте через движок, то в БД они отображаются кракозябрами.

При любом раскладе в БД все отображается красиво,а на сайте - одни вопросики

Если всё подвожу к utf, то ситуация аналогичная..только вместо вопросов половины содержимого сайта отсутствует. Я про содержимое из дистрибутива.

127

Re: Смена кодировки базы в phpMyAdmin

НеПодарка
К первым двум пунктам добавьте третий. В корневой .htaccess добавьте строку:
[mono]PHP_VALUE default_charset windows-1251[/mono]

Если не сможете разобраться, напишите по шагам что вы делаете.

128 (изменено: НеПодарка, 2010-04-22 16:17:53)

Re: Смена кодировки базы в phpMyAdmin

Hanut сказал:

НеПодарка
К первым двум пунктам добавьте третий. В корневой .htaccess добавьте строку:
[mono]PHP_VALUE default_charset windows-1251[/mono]

Если не сможете разобраться, напишите по шагам что вы делаете.

Если честно, не знаю, как этот файлик создать hmm

Всё описанное выше привело к тому, что можно увидеть тут. Ядро стало не читаемым...

Примерно тоже самое происходит, когда я все перевожу в утф8

результат остался тем же и и использованием третьего шага...(

129

Re: Смена кодировки базы в phpMyAdmin

НеПодарка
Теперь откройте phpMyAdmin и посмотрите как кириллица выглядит в таблицах, а так же укажите в какой кодировке таблицы (укажите используемое ими сравнение).

130 (изменено: НеПодарка, 2010-04-22 16:45:18)

Re: Смена кодировки базы в phpMyAdmin

Hanut сказал:

НеПодарка
Теперь откройте phpMyAdmin и посмотрите как кириллица выглядит в таблицах, а так же укажите в какой кодировке таблицы (укажите используемое ими сравнение).

кириллица выглядит нормально. сравнение везде cp1251_general_ci

Пыталась все подшерстить под utf8, тоже не помогло:(

131 (изменено: НеПодарка, 2010-04-22 19:49:06)

Re: Смена кодировки базы в phpMyAdmin

Проблему решила так (найдено в рунете, вдруг еще кому-то понадобится):

Для движка PHP-Fusion 7

1. в файле locale/Russian/global.php должно быть прописано:

// Locale Settings
setlocale(LC_ALL, 'ru_RU.CP1251'); // Linux Server (Windows may differ)
$locale['charset'] = "windows-1251";
$locale['xml_lang'] = "ru";
$locale['tinymce'] = "ru";
$locale['phpmailer'] = "ru";

2. в maincore.php находим:

$db_connect = @mysql_connect($db_host, $db_user, $db_pass);
$db_select = @mysql_select_db($db_name);

ниже добавляем:
mysql_query ('SET NAMES cp1251');
mysql_query ('SET CHARACTER SET cp1251');


3. Создаём файл с именем .htaccess (если уже такой есть то редактируем) добавляем код:

AddDefaultCharset windows-1251

В общем-то мне советовали все правильно, только нужно было добавить в ядро движка код, а не в дамповый. Ну, тут уже я слошарилась, замылилась.

Спасибо Админу-соседу за помощь.

132 (изменено: alferus, 2010-07-03 15:38:02)

Re: Смена кодировки базы в phpMyAdmin

Здравствуйте! Сегодня утром зашел на свой IPB 3.0 (установлен на беспл хосте) и вместо русского языка появилось "Faq ???? ??????????????????????",
зашел в админку форума, где меню было частично русским, потыркал русификатор, не помогло.. Кодировка форума как и раньше стоит UTF-8. Полез первыи раз в phpMyAdmin версии: 3.2.1, там сравнение cp1251_general_ci. Данные phpMyAdmin :: MySQL 5.1.48 - кодировка: UTF-8 Unicode (utf8); Apache/2.2.15 (FreeBSD) mod_ssl/2.2.15 OpenSSL/0.9.8k DAV/2 mod_fcgid/2.3.5. И что самое интересное и отличающееся от осталных - в таблицах phpMyAdmin тоже кривои текс вместо русского языка! Тоесть дело в БД?

на запрос отвечает так:

Variable_name     Value
character_set_client    latin1
character_set_connection    latin1
character_set_database    latin1
character_set_filesystem    binary
character_set_results    latin1
character_set_server    latin1
character_set_system    utf8
character_sets_dir    /usr/local/share/mysql/charsets/

я так понимаю данные форматированы безвозвратно?(

133

Re: Смена кодировки базы в phpMyAdmin

alferus
Не меняйте сравнение в phpMyAdmin у таблиц, чтобы не сбить данные. Возможно данные вернуть получится.

Сделайте дамп БД. Откройте его в текстовом редакторе (рекомендую Notepad++) и скопируйте сюда структуру любой таблицы (Начинается с CREATE TABLE...). Покажите как в дампе выглядит кириллица, если она нечитаема, имеет вид крякозябов.

134 (изменено: Hanut, 2010-07-03 19:51:39)

Re: Смена кодировки базы в phpMyAdmin

Отдельно кодировку таблиц я не менял, только в базе -> Операции и там менял сравение cp1251_general_ci на другие и обратно..

[spoiler]CREATE TABLE IF NOT EXISTS `mail_error_logs` (
  `mlog_id` int(10) NOT NULL AUTO_INCREMENT,
  `mlog_date` int(10) NOT NULL DEFAULT '0',
  `mlog_to` varchar(250) NOT NULL DEFAULT '',
  `mlog_from` varchar(250) NOT NULL DEFAULT '',
  `mlog_subject` varchar(250) NOT NULL DEFAULT '',
  `mlog_content` varchar(250) NOT NULL DEFAULT '',
  `mlog_msg` text,
  `mlog_code` varchar(200) NOT NULL DEFAULT '',
  `mlog_smtp_msg` text,
  PRIMARY KEY (`mlog_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

? ?µ???????‚???°?†???? ???[/spoiler]

Кстати, кодировки у таблиц разные где то UTF-8 где то cp1251

135

Re: Смена кодировки базы в phpMyAdmin

alferus
Из вопросиков ничего восстановить нельзя. В phpMyAdmin эти данные тоже вопросиками выглядят?

136 (изменено: alferus, 2010-07-03 20:23:58)

Re: Смена кодировки базы в phpMyAdmin

Hanut сказал:

alferus
Из вопросиков ничего восстановить нельзя. В phpMyAdmin эти данные тоже вопросиками выглядят?

да вот так и выглядят.. связался с админами хостинга - сказали, что утром апгреидили сервак sad(

137

Re: Смена кодировки базы в phpMyAdmin

alferus
Узнайте не сохранился ли у них дамп вашей БД. С вопросиками ничего сделать нельзя.

138

Re: Смена кодировки базы в phpMyAdmin

Хостинг подкрутил у себя кодировки и форум, после перезагрузки руссификатора, снова стал читаймым smile Но что самое интересное, в phpMyAdmin до сих пор вместо русского - непонятные символы О_о ну да ладно.. все наладилось, Hanut - спасибо, что уделил внимание!

139

Re: Смена кодировки базы в phpMyAdmin

alferus
Очень советую озаботится проблемой кодировок, иначе в будущем возможно повторение проблем. И перенос на другой хостиг дампа с вопросиками будет невозможен.

140

Re: Смена кодировки базы в phpMyAdmin

Здравствуйте, не поможете и моему горю.

В наследство достался сайт. Вернее попросили за ним приглядывать. Сейчас я задумала перевести сайт с текущей самописной программы на вордпресс, открыла базу через phpMyAdmin - а там сплошные кракозябры sad При этом в браузере всё отображается все нормально.

Сделала запрос: SHOW GLOBAL VARIABLES LIKE 'char%';

Variable_name     Value
character_set_client     latin1
character_set_connection     latin1
character_set_database     latin1
character_set_filesystem     binary
character_set_results     latin1
character_set_server     latin1
character_set_system     utf8
character_sets_dir     /usr/share/mysql/charsets/

В базе данные выглядят след образом: Интервью Ивана Газидиса  бл...
В во всех таблицах все текстовые поля выставлены в кодировку utf8_general_ci .

Пробовала экспортировать, открывать через notepad - менять кодировку- не помогает sad Что можно придумать? Подскажите, пожалуйста. Заранее спасибо.

141

Re: Смена кодировки базы в phpMyAdmin

Проверить к какой базе идет обращение бывает что pma и сайт работают с разными базами, для этого сравните хосты в конфиге вашего сайта, или выгрузить сайт используя скрипт если у Вас идет перекодировка в скиптах, так сразу не скажу что сделать, связывайтесь со мной по скайпу на домашней странички моей, постараюсь вам помочь.

142

Re: Смена кодировки базы в phpMyAdmin

ptaha_ha сказал:

В базе данные выглядят след образом: Интервью Ивана Газидиса  бл...

Если на сервере есть доступ к выполнению mysqldump, то можно сохранить дамп указав изначальную кодировку, в этом случае данные сохранятся в нормальном виде.

mysqldump -u root -ppassword --default-character-set=latin1 db_name table_name > /usr/dump.sql

В данной строке необходимо заменить password на пароль пользователя root (можно подключиться и под другим пользователем);
db_name - имя базы данных;
table_name - имя таблицы. Если не указывать имя таблицы, то будут сохранены все таблицы указанной выше базы данных.
/usr/dump.sql - сохраняемый файл дампа.

Если на сервере доступа к командной строке, а следовательно и к mysqldump нет, то можно перенести дамп в виде крякозябов на локальный компьютер и на нем проделать сохранение дампа с помощью mysqldump. На Windows все будет работать точно так же, кроме пути к файлу, который надо указать с буквой диска - ... > C:\dump.sql

143

Re: Смена кодировки базы в phpMyAdmin

DmitryV, Hanut, спасибо за внимание к моему вопросу.

Доступа к выполнению mysqldump на сервере у меня нет. Экспортировала базу в разных видах : файл sql, txt, архив gzip.
Попробовала развернуть на локальной машине под Денвером. База 17 Мб. Импортировала и увидела привычные кракозябры в phpMyAdmin + теперь они еще видны и в браузере sad Импорт пробовала по-разному: через phpMyAdmin, через mysql_run_to_import_dumps,  через программу SQL Manager. Эффект везде одинаков. Кра-ко-зяб-ры.

По Вашему совету, Hanut, запустила mysqldump с командной строки с указанными параметрами. Кракозябры превратились в 80% в знаки вопроса. Хана какая-то smile В какой бубен еще надо постучать, чтобы было счастье ? smile

144

Re: Смена кодировки базы в phpMyAdmin

smile забыла еще написать.

Пробовала сделать дамп базы с помощью Sypex Dumper Pro 2.0.7 RC. Скопировала, выставила права, отредактировала файл с параметрами соединения. Открыла в браузере и увидела, что не стоит Zend Optimizer. Так что попытка не удалась sad
Я уже не знаю, что придумать sad 430 статей + 6 000 комментариев к ним. Если вручную переносить из браузера - то я закончу, когда у меня уже внуки будут smile))

145 (изменено: DmitryV, 2010-11-22 04:20:51)

Re: Смена кодировки базы в phpMyAdmin

Ну не в бубен, для начала нужно отказаться от Денвера и настроить все окружение отдельно. Денвер = зло.

Попробуйте снять дамп и залить с Sypex Dumper Lite 1.0.8 - http://sypex.net/files/SypexDumperLite_108.zip
Если не поможет: Свяжитесь со мной через скайп, мой скайп указан на моей домашней страничке из профиля, постараюсь решить вопрос. Если на сайте се коректно, то все возможно перенести, либо Вы гдето допускаете ошибку... дайте ссылку на Ваш сайт посмотреть. (можно в ЛС если не хотите имя писать сайта на форум)

146

Re: Смена кодировки базы в phpMyAdmin

Дмитрий, сняла базу с помощью сипекса лайт. Открыла файлик - все-попрежнему sad

Я не исключаю возможности, что у меня кривые руки smile На самом сайте (в браузере) все отображается нормально. Сайт - http://arsenal-blog.ru.

147 (изменено: DmitryV, 2010-11-22 11:16:41)

Re: Смена кодировки базы в phpMyAdmin

у Вас сайт в UTF-8 кодировке а Вы чем файл просматриваете? смотрите его в редакторе который поддерживает Юникод или сразу залейте в базу локально, при заливке дампа через PMA выбирете кодировку UTF-8? или залейте через Sypex Dumper Lite.
Я не исключаю возможности что реально могут быть 2 базы на хосте сайт работает с одной, а вы сливать другую, не давно такое видел, званите в скайп разберусь удаленно во всем.

148

Re: Смена кодировки базы в phpMyAdmin

мой вопрос закрыт, благодаря профессиональной помощи DmitryV.

Проблема состояла в том, что в в базе формата UTF8 хранились данные в формате 1252 (Latin1). Дмитрий помог правильно переконвертировать базу и поправить работу скриптов. В итоге, база выглядит по-русски и новые данные тоже добавляются корректно. За что ему огромное человеческое спасибо! Надеюсь, что заказчик тоже оценит smile

149

Re: Смена кодировки базы в phpMyAdmin

BFG сказал:

Стоит php-nuke 7.6 + форум от PhpBB3, в нюке кодировка ср 1251, а рнрВВ3 - utf8,

Это надо менять не в phpMyAdmin, а в настройках скриптов.

Надо поискать для обоих скриптов конфигурационную директиву устанавливающую кодировку соединения с MySQL. Для Nuke она будет cp1251, а для phpBB utf8.

150

Re: Смена кодировки базы в phpMyAdmin

Добрый...

Похоже у меня симиляр проблем с ptaha_ha. Опишите если можно решение. Проблема следуюшая:
Есть магазин на x-cart, достался в наследство. Данные из базы на русском языке отображаются так же как у ptaha_hа а именно http://91.201.13.146:8000/screen_berniba.png так же и в phpmyadmin. Пробовал все что есть в этом форуме и ещё кучу всяких вариантов. Ничего не помогает. Скорее всего потому, что я не очень понимаю суть того что делаю. Буду благодарен за любую помощь.