БД

Статус
В этой теме нельзя размещать новые ответы.
ну видишь в БД у тебя хранится все правильно. значит проблема именно в том что пыха не выставляет нужную кодировку, а у базы данных по дефолту стоит иная нежели чем cp1251. тут можно два варианта попробовать первый это выставить дефолтовую кодировку в БД в файле my.ini или my.cnf

character-set-server = ср1251 # это может уже есть у тебя в этом файле глянь внимательно тока может с другой кодировкой стоит
default-character-set = ср1251

после этого перегружаешь майскул и пробуешь. после этих настроек при выборке show variables like '%char%'; положение вещей должно изменится, т.е. появится cp1251 вместо латин1 и еще че там было у тебя. значит мы переключили дефолтовую кодировку на уровне БД

если опять нет - то стоит раскоментировать еще разок эту строчку что дал тебе человек выше. значек собачки нужно убрать и под строкой еще на время добавь пару строчек - это мы пробуем сменить кодировку на уровне пыхи при каждом конекте к бд - это более правильно:
PHP:
mysql_query("SET NAMES 'cp1251'", $this->_resource);
echo mysql_error();
echo 1;
у тебя на странице после этого должна появится единичка гдето. это значит что этот запрос выполняется. также если будет ошибка при смене кодировки - то она отобразится. если возникнет ошибка то скорее всего в конфике майскула стоит skip-character-set-client-handshake параметр запрещающий смену кодировки на уровне пыхи (хотя тогда поидее майскул бы тож вопроссики рисовал, но всеже)

P.S.: еще глянь исходники, т.е. вью соурс нажми странички и глянь в мета тэгах у тебя виндовс-1251 стоит или нет? т.е. сама жумла правильно ли считает что у нее ЦП1251 кодировка?

P.S.S.: у тя кэш не может быть? включен на жумле? и поэтому вопросики не обновляются?
 
ну видишь в БД у тебя хранится все правильно. значит проблема именно в том что пыха не выставляет нужную кодировку, а у базы данных по дефолту стоит иная нежели чем cp1251. тут можно два варианта попробовать первый это выставить дефолтовую кодировку в БД в файле my.ini или my.cnf

character-set-server = ср1251 # это может уже есть у тебя в этом файле глянь внимательно тока может с другой кодировкой стоит
default-character-set = ср1251

после этого перегружаешь майскул и пробуешь. после этих настроек при выборке show variables like '%char%'; положение вещей должно изменится, т.е. появится cp1251 вместо латин1 и еще че там было у тебя. значит мы переключили дефолтовую кодировку на уровне БД

если опять нет - то стоит раскоментировать еще разок эту строчку что дал тебе человек выше. значек собачки нужно убрать и под строкой еще на время добавь пару строчек - это мы пробуем сменить кодировку на уровне пыхи при каждом конекте к бд - это более правильно:
PHP:
mysql_query("SET NAMES 'cp1251'", $this->_resource);
echo mysql_error();
echo 1;
у тебя на странице после этого должна появится единичка гдето. это значит что этот запрос выполняется. также если будет ошибка при смене кодировки - то она отобразится. если возникнет ошибка то скорее всего в конфике майскула стоит skip-character-set-client-handshake параметр запрещающий смену кодировки на уровне пыхи (хотя тогда поидее майскул бы тож вопроссики рисовал, но всеже)

P.S.: еще глянь исходники, т.е. вью соурс нажми странички и глянь в мета тэгах у тебя виндовс-1251 стоит или нет? т.е. сама жумла правильно ли считает что у нее ЦП1251 кодировка?

P.S.S.: у тя кэш не может быть? включен на жумле? и поэтому вопросики не обновляются?

Раскомментировал
вышеописанную строку и все стало норм. Прошлый раз просто криво раскоментил. Спасибо. Только возник новый вопрос - почему на том хостинге это работало без изменений файла database.php а здесь пришлось делать это?
 
Только возник новый вопрос - почему на том хостинге это работало без изменений файла database.php а здесь пришлось делать это?
Потому что на "том" хостинге mysqld был собран с дефолтной локалью 1251 а на новом (правильном) utf-8
Либо там была локаль вашего пользователя 1251
Хорошо бы вобщето работать в родной кодировке BD (влияет на операции сравнения)
 
Потому что на "том" хостинге mysqld был собран с дефолтной локалью 1251 а на новом (правильном) utf-8
Либо там была локаль вашего пользователя 1251
Хорошо бы вобщето работать в родной кодировке BD (влияет на операции сравнения)
А если допустим я на этом хостинге установлю нулевую джумлу, там тоже надо будет раскомментировать строку или с нуля она встанет нормально?
 
встанет нормально.
Инсталлятор джумлы выкупит кодировку и в ней создаст необходимые таблицы и контент.
 
Все знатоки правые,

Да, все советы здесь были полезные. Но, если разрешите и мой скромный опыт. Инсталируем EmEditor Открываем .sql файла. Читается. Открываем второе окно с ЕmEditora Меняем кодировку на то, что там показали что хотят новые хостеры. Копируем всьо от нормально читаемой EmEditor в новом. (Используем внутренние возможности как конвертер EmEditora). Потом начинаем с новое копи-пасте но сейчас от новом окне редактора в редактора SQL-коньзоль(phpMyAdmin например). И все.
 
Да, все советы здесь были полезные. Но, если разрешите и мой скромный опыт. Инсталируем EmEditor Открываем .sql файла. Читается. Открываем второе окно с ЕmEditora Меняем кодировку на то, что там показали что хотят новые хостеры. Копируем всьо от нормально читаемой EmEditor в новом. (Используем внутренние возможности как конвертер EmEditora). Потом начинаем с новое копи-пасте но сейчас от новом окне редактора в редактора SQL-коньзоль(phpMyAdmin например). И все.

Насколько я знаю, вместо этой проги можно использовать обычный ворд для перекодировки?
 
Меняем кодировку на то, что там показали что хотят новые хостеры.
Люди не слушайте этот совет! Это зло съест пару часов вашей жизни и несколько миллионов нервных клеток.
Вот почему:
 
Насколько я знаю, вместо этой проги можно использовать обычный ворд для перекодировки?
народ вы что какой ВОРД? какие редакторы? а если база данных 20ГБ?

пример перегона кодировки из cp1251 в utf8


после меняем кодировку в крит стейтментах


уверен во фре если не 1 в 1 то очень близко к этим командам это делается.

правда есть два момента которые стоит учесть в любом случае.
1) последня команда заменяет все последовательности в дампе, т.е. даже если они будут в данных - а это не очень хорошо, т.к. в тексте у вас может хранится таже кодировка или последовательность этих символов, поэтому всегда нужно СТРУКТУРУ экспортировать отдельно а ДАННЫЕ отдельно! чтобы было два разных файла - один с КРИТАМИ, другой с ИНСЁРТАМИ.
2) перед экспортом БД всегда убедитесь, что в одном дампе не окажутся две разные кодировки. допустим русские символы в CP1251 и UTF8 - потом не импортнёте и не конвертнете этот дамп и огребете кучу гемороя по восстановлению данных.
 
народ вы что какой ВОРД? какие редакторы? а если база данных 20ГБ?

пример перегона кодировки из cp1251 в utf8
*** скрытое содержание ***

после меняем кодировку в крит стейтментах
*** скрытое содержание ***

уверен во фре если не 1 в 1 то очень близко к этим командам это делается.

правда есть два момента которые стоит учесть в любом случае.
1) последня команда заменяет все последовательности в дампе, т.е. даже если они будут в данных - а это не очень хорошо, т.к. в тексте у вас может хранится таже кодировка или последовательность этих символов, поэтому всегда нужно СТРУКТУРУ экспортировать отдельно а ДАННЫЕ отдельно! чтобы было два разных файла - один с КРИТАМИ, другой с ИНСЁРТАМИ.
2) перед экспортом БД всегда убедитесь, что в одном дампе не окажутся две разные кодировки. допустим русские символы в CP1251 и UTF8 - потом не импортнёте и не конвертнете этот дамп и огребете кучу гемороя по восстановлению данных.

Ну лично я не сталкивался с БД размеров 20гб, максимум работал с 5 мегами. Но если бы такая ситуация была, и если учесть то что я не слышал об iconv, то тем же вордом ждал бы с недельку, или на мощный дедик поставил бы процесс :D
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху