101

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

В phpMyAdmin данные выводятся хорошо при добавлении всех таблиц SQL-запросом, а при импортировании файла в формате ANSI и указании в селекте cp1251 в таблицах были вопросы. Файл проверял-перепроверял, точно в ANSI, почему при таком способе импортирования выводились вопросы - не знаю. Проблему решил, дописав в подключении после коннекта mysql_query("SET character_set_client='cp1251'; SET character_set_results='cp1251';",$db); и в .htaccess строчку php_value default_charset "windows-1251" Может кому-то так же поможет. Поля все имеют сравнение cp1251_general_ci

102

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

boget
Если дамп в ANSI, кириллица в нем читаема и таблицы имеют сравнение cp1251_general_ci - значит в дампе есть запросы устанавливающие кодировку соединения. Посмотрите нет ли вверху дампа что-то вроде SET NAMES.

103

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

Есть вот такая строка /*!40101 SET NAMES utf8 */;

104

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

boget
Эту строку надо удалить перед импортом дампа, так как она устанавливает кодировку соединения с MySQL в utf8 и данные находящиеся в cp1251 получаются битыми.

Хотя данную строку можно и не удалять, достаточно перекодировать дамп из ANSI в UTF8 (без BOM байта!) и импорт данных в cp1251 будет корректным.

105

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

Спасибо за помощь!

106 (изменено: s-kAn, 2010-03-31 20:46:27)

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

Здраствуйте...помогите, чем можете, разобраться в ситуации...сначало не мог поменять параметры в значениях character_set_connection, character_set_results, character_set_client, все перепробывал и ничего не помогало и было все так:
character_set_client    utf8
character_set_connection    utf8
character_set_database    cp1251
character_set_filesystem    binary
character_set_results    utf8
character_set_server    cp1251
character_set_system    utf8
character_sets_dir    C:\Program Files\MySQL\MySQL Server 5.0\share\char.

Сейчас каким то чудом значения поменялись но проблема осталась а именно знаки вопроса в браузерах, а именно ??? ?? ??????, остались, т.е. данные все равно не выводятся на русском...
Что посоветуете...
mysql_query("SET NAMES cp1251"); прописано
charset=cp1251 прописал
базы данных в cp1251_general_ci

Сообщение добавлено Wed Mar 31 21:37:54 2010
НОВАЯ ПРОБЛЕМА - плюс к тому что вместо русского ??? ?? ??????, теперь еще и в самом phpMyAdmin'е значения которые были на русском теперь на таком языке - cfee20e5e1ebf3

107

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

s-kAn
Сами страницы скрипта проверьте, они должны быть в ANSI и в мета теге должна быть указана кодировка windows-1251.

Покажите вывод запроса.
[mono]SHOW GLOBAL VARIABLES LIKE 'char%';[/mono]

108

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

Hanut сказал:

s-kAn
Сами страницы скрипта проверьте, они должны быть в ANSI и в мета теге должна быть указана кодировка windows-1251.

Покажите вывод запроса.
[mono]SHOW GLOBAL VARIABLES LIKE 'char%';[/mono]

Вот -
Variable_name     Value
character_set_client    cp1251
character_set_connection    cp1251
character_set_database    cp1251
character_set_filesystem    binary
character_set_results    cp1251
character_set_server    cp1251
character_set_system    utf8
character_sets_dir    C:\Program Files\MySQL\MySQL Server 5.0\share\char...

Сообщение добавлено Wed Mar 31 22:19:31 2010
Да, ан счет скрипта - все норм, на счет меты и кодировки - также все в порядке...

109

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

s-kAn
С настройками все нормально.

Надо чтобы в phpMyAdmin была нормально видна кириллица, тогда все будет в порядке. Вы видите кириллицу в phpMyAdmin?

110

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

Hanut сказал:

s-kAn
С настройками все нормально.

Надо чтобы в phpMyAdmin была нормально видна кириллица, тогда все будет в порядке. Вы видите кириллицу в phpMyAdmin?

Нет, в phpMyAdmin сейчас так -  База данныС...

111

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

Вообще какие то странности начались...вначале когда не мог поменять параметры в значениях character_set_connection, character_set_results, character_set_client - в phpMyAdmin'е все номр отображалось но не отображался русский в браузерах...теперь когда эти значения поменялись - не виден русский и в phpMyAdmin'е и в браузерах...

112

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

Ой, извините...уже ближе к ночи туплю...банальный случай...вообщем в phpMyAdmin'е  все нормально отображает а вот данные из баз выводит в браузеры в таком виде - ??? ?? ??????
Еще раз извините и что посоветуете поссмотреть, подкоректировать чтобы убрать наконец то русский появился вместо ??? ?? ??????...что вам показать, рассказать...

113

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

s-kAn
В настройках все нормально. Если в phpMyAdmin кириллица видна, то больше никаких проблем быть не может.

Что это за скрипт? Страница в браузере точно в windows-1251 открывается?

114

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

Hanut сказал:

s-kAn
В настройках все нормально. Если в phpMyAdmin кириллица видна, то больше никаких проблем быть не может.

Что это за скрипт? Страница в браузере точно в windows-1251 открывается?

Страница точно в windows-1251. Скрипт? Да обычный скрипт голосования...вообщем голосовалку на сайте делаю, он выводит вопрос и варианты из базы и выводит, гад, ??? ?? ?????? такую фигню...Уже не знаю в каком направление копать...((

115

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

s-kAn
Посмотрите нет ли где в скрипте еще выполнения запроса SET NAMES, кроме SET NAMES 1251.

116

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

Hanut сказал:

s-kAn
Посмотрите нет ли где в скрипте еще выполнения запроса SET NAMES, кроме SET NAMES 1251.

К сожалению нет - больше нет такого запроса...Вот еще один занятный факт, - сегодня поигрался со всеми браузерами, такими как Google Chrome, Opera, Ишак(IE), Safari и хваленный Firefox...так вот на счет занятного факта, а именно взял и выставил принудительно кодировку в браузерах windows-1251 вместо автоматической и о-чудо и чудо маленькое...только в одном браузере появились русские букаФки а именно в Opera'e - в остальных облом, все так же ??? ?? ??????...вот такие вот странности, раньше такого не было...вообщем чудеса продолжаются...какие еще соображения, выручайте други

117

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

s-kAn
Откройте файл скрипта в текстовом редакторе (советую Notepad++) и посмотрите таблицу символов в статусной строке; там будет ANSI, либо UTF8. Если увидите UTF8, то с помощью Notepad++ сможете перекодировать скрипт в ANSI.

118

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

Hanut сказал:

s-kAn
Откройте файл скрипта в текстовом редакторе (советую Notepad++) и посмотрите таблицу символов в статусной строке; там будет ANSI, либо UTF8. Если увидите UTF8, то с помощью Notepad++ сможете перекодировать скрипт в ANSI.

Опять же, к сожалению, с кодировкой все впорядке - она ANSI...я уже смотрел раньше, скачал по вашему совету Notepad++...в нем тоже все норм, показывает ANSI...что еще может быть, что посоветуете

119

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

s-kAn
Попробуйте в корне сайта добавить в .htaccess следующую строку:
[mono]PHP_VALUE default_charset windows-1251[/mono]

120

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

Hanut сказал:

s-kAn
Попробуйте в корне сайта добавить в .htaccess следующую строку:
[mono]PHP_VALUE default_charset windows-1251[/mono]

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

121

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

Здравствуйте!
Мне нужно перевести сайт с cp1251 на utf8. На данный момент все скрипты PHP и таблицы БД в cp1251. Подскажите, пожалуйста, самое простое решение моей проблемы.

Настройки БД следующие:

character_set_client    cp1251
character_set_connection    cp1251
character_set_database    cp1251
character_set_filesystem    binary
character_set_results    cp1251
character_set_server    cp1251
character_set_system    utf8
character_sets_dir    /usr/local/mysql50/share/mysql/charsets/

122

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

kapxapot
1) Перекодировка дампа. Самое главное - сохраните исходный дамп, чтобы иметь возможность все откатить назад, если что-то пойдет не так.
1.1) Создайте дамп с данными БД, проследите, чтобы файл был в UTF8 (не в ANSI). Откройте дамп текстовым редактором (рекомендую Notepad++) и обычной заменой поменяйте все [mono]cp1251[/mono] на [mono]utf8[/mono] (кодировки и сравнения).
1.2) Импортируйте дамп обратно в БД.

2) Установить кодировку соединения с MySQL в utf8.
2.1) В конфигурационный файл MySQL (my.cnf), в раздел [mono][mysqld][/mono] добавьте строку:
[mono]init-connect="SET NAMES utf8"[/mono]
2.2) Если конфигурационный файл MySQL не доступен, то найдите в файлах скрипта вызов функции mysql_connect и сразу после нее добавьте строку:
[mono]mysql_query('SET NAMES utf8');[/mono]

123

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

Hanut
Спасибо!

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

Здравствуйте, гуру кодировок!

У меня такая проблема:
Есть два братских движка: Fusion SF 6 и Fusion 7.
Мне с 6-го нужно перенести хотя бы часть данных на 7-ый.

7-ый инсталлится с кодировкой win-1251 на сайт (так показывает FF), а в БД - utf-8, сопоставление с мускулом - utf8. Сайт отображается хорошо.
Когда я переношу часть данных (в данном случае новости), они отображаются на сайте вопросиками, в БД - отображаются нормально. Данные вводились и просто запросом, и текстовым файлом в кодировке utf-8.

Пробовала инсталлировать сайт с кодировкой utf-8 - появились проблемы с кодировкой и в самом сайте, данные, по-прежнему, в вопросах.

Пробовала сайт инсталлить в win-1251, поменяла сопоставление и таблицы в БД на win-1251 - опять проблемы с кодировкой части сайта + данные вывелись опять в виде вопросов.

Что еще можно попробовать?

125

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

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

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

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