Пропали русские буквы, но не везде
#1
Отправлено 01 September 2011 - 11:06 PM
Прилагаю скриншот.
очно так же букв не видать при создании новых разделов каталога и отдельных товаров.
Ошибок при этом не возникает... перезалил и проверил языковой файл, вроде все в порядке с ним, а буков все равно нетути.
В исходном коде на месте, где должны быть буквы, просто пустое место, точнее вобще даже пустого места нет: открывающий тег и сразу закрывающий. На местеанглийского текста наоборот - все чин чинарем.
В техподдержку написал письмо еще прошлой ночью, тишина пока.
Может было у кого такое?
Хоть подскажите куда копать, а то чайники мы, хоть и продвинутые (типа термопот)...
Заранее признателен.
#2
Отправлено 01 September 2011 - 11:12 PM
#3
Отправлено 01 September 2011 - 11:17 PM
кодировка задана все стандартно, тупо начальный движок установка с нуля
#4
Отправлено 01 September 2011 - 11:21 PM
#5
Отправлено 01 September 2011 - 11:25 PM
По админке понятно, а пользовательская часть нормально отображается?
#6
Отправлено 01 September 2011 - 11:31 PM
---------- Сообщение объединено ----------
у данного скрипта частенько приколы с кодировками на различных хостингах.
По админке понятно, а пользовательская часть нормально отображается?
так же частично
---------- Сообщение объединено ----------
да кстати вот хостинг TIMEWEB - Всегда больше, чем просто хостинг.
#7
Отправлено 01 September 2011 - 11:38 PM
для начала спросите у хостера про поддержку cp1251 (на всякий случай)
и потом можно раскомментировать строки в core\includes\database\mysql.php, возможно, потребуется переустановка. и тогда лучше сразу создавать базу в 1251
#8
Отправлено 01 September 2011 - 11:39 PM
после
$r = mysql_connect($host,$user,$pass);
$version = mysql_get_server_info($r);
if(preg_match('/^5\./',$version) || preg_match('/^4\.[1-9]/',$version)){
if(preg_match('/^5\./',$version)) mysql_query('set session sql_mode=0');
добавьте
mysql_query('set names cp1251');
mysql_query('set character set cp1251');
mysql_query('set character_set_client=cp1251');
mysql_query('set character_set_results=cp1251');
mysql_query('set character_set_connection=cp1251');
mysql_query('set character_set_database=cp1251');
mysql_query('set character_set_server=cp1251');
и переустановите магазин
#9
Отправлено 01 September 2011 - 11:44 PM
#10
Отправлено 28 February 2012 - 01:00 PM
Спасибо
#11
Отправлено 28 February 2012 - 01:06 PM
файл в папке \core\includes\database\
#12
Отправлено 28 February 2012 - 01:12 PM
#13
Отправлено 28 February 2012 - 01:20 PM
core-include-database-mysqlВсем привет, столкнулся с такой же проблемой, только в папке с инсталлом нету такого файла, подскажите что делать ??
Спасибо
там убери комментарии, чтобы было так
function db_connect($host,$user,$pass) //create connection
{
$r = mysql_connect($host,$user,$pass);
$version = mysql_get_server_info($r);
if(preg_match('/^5\./',$version) || preg_match('/^4\.[1-9]/',$version)){
if(preg_match('/^5\./',$version)) mysql_query('set session sql_mode=0');
mysql_query('set names cp1251');
mysql_query('set character set cp1251');
mysql_query('set character_set_client=cp1251');
mysql_query('set character_set_results=cp1251');
mysql_query('set character_set_connection=cp1251');
mysql_query('set character_set_database=cp1251');
mysql_query('set character_set_server=cp1251');
}
return $r;
}
#14
Отправлено 28 February 2012 - 01:23 PM
или после этого кода тоже все убрать ?
#15
Отправлено 28 February 2012 - 01:30 PM
function db_connect($host,$user,$pass) //create connection
{
$r = mysql_connect($host,$user,$pass);
$version = mysql_get_server_info($r);
if(preg_match('/^5\./',$version) || preg_match('/^4\.[1-9]/',$version)){
if(preg_match('/^5\./',$version)) mysql_query('set session sql_mode=0');
// mysql_query('set names cp1251');
// mysql_query('set character set cp1251');
// mysql_query('set character_set_client=cp1251');
// mysql_query('set character_set_results=cp1251');
// mysql_query('set character_set_connection=cp1251');
// mysql_query('set character_set_database=cp1251');
// mysql_query('set character_set_server=cp1251');
}
return $r;
}
а надо так
function db_connect($host,$user,$pass) //create connection
{
$r = mysql_connect($host,$user,$pass);
$version = mysql_get_server_info($r);
if(preg_match('/^5\./',$version) || preg_match('/^4\.[1-9]/',$version)){
if(preg_match('/^5\./',$version)) mysql_query('set session sql_mode=0');
mysql_query('set names cp1251');
mysql_query('set character set cp1251');
mysql_query('set character_set_client=cp1251');
mysql_query('set character_set_results=cp1251');
mysql_query('set character_set_connection=cp1251');
mysql_query('set character_set_database=cp1251');
mysql_query('set character_set_server=cp1251');
}
return $r;
}
В$Е о$тальное о$тавляешь на ме$те и не трогаешь, заливаешь на хо$тинг и переу$танавлиавешь движок и должно заработать
#16
Отправлено 28 February 2012 - 04:24 PM
$мотри у тебя начало кода выглядит так
function db_connect($host,$user,$pass) //create connection
{
$r = mysql_connect($host,$user,$pass);
$version = mysql_get_server_info($r);
if(preg_match('/^5\./',$version) || preg_match('/^4\.[1-9]/',$version)){
if(preg_match('/^5\./',$version)) mysql_query('set session sql_mode=0');
// mysql_query('set names cp1251');
// mysql_query('set character set cp1251');
// mysql_query('set character_set_client=cp1251');
// mysql_query('set character_set_results=cp1251');
// mysql_query('set character_set_connection=cp1251');
// mysql_query('set character_set_database=cp1251');
// mysql_query('set character_set_server=cp1251');
}
return $r;
}
а надо такfunction db_connect($host,$user,$pass) //create connection
{
$r = mysql_connect($host,$user,$pass);
$version = mysql_get_server_info($r);
if(preg_match('/^5\./',$version) || preg_match('/^4\.[1-9]/',$version)){
if(preg_match('/^5\./',$version)) mysql_query('set session sql_mode=0');
mysql_query('set names cp1251');
mysql_query('set character set cp1251');
mysql_query('set character_set_client=cp1251');
mysql_query('set character_set_results=cp1251');
mysql_query('set character_set_connection=cp1251');
mysql_query('set character_set_database=cp1251');
mysql_query('set character_set_server=cp1251');
}
return $r;
}
В$Е о$тальное о$тавляешь на ме$те и не трогаешь, заливаешь на хо$тинг и переу$танавлиавешь движок и должно заработать
разница только в том что нету "//" перед строчкой ?
и какая последовательность?
1. на компе редактирую фаил
2. заменяю его на тот что стоит на хосте
3. захожу на ссылка/install.php? (предварительно не удаля старое содержание)
#17
Отправлено 28 February 2012 - 05:47 PM
#18
Отправлено 28 February 2012 - 05:58 PM
да разница только в коментарии"//" так как не ве$ хо$тинги почему-то корректно во$принемают эту байду. Лично я заменял на локалке, потом удалял в$е нафик $ хо$тинга и заливал заного чтобы наверняка)))
хостинг тут не при чем..... кодировка БД имеет значение. При создании БД нужно проверить кодировку, если она в cp1251 то таблицы создадутся тоже в cp1251 и эти строки попросту не нужны
а если в UTF8 или не дай Боже в latin1 (что означает что хостеры олухи) - то тогда после подключения обязательно нужны те строки для преобразования в виндовую кодировку.
Преобразовать БД можно и после создания, но тогда все таблицы тоже нужно будет преобразовывать и х/з что будет с данными, поэтому проще просто добавить/расскоментировать те строчки
---------- Сообщение объединено ----------
З.Ы. fauran, а у Вас что нет буквы "с" на клавиатуре?
#19
Отправлено 28 February 2012 - 06:04 PM
А по поводу БД, то как я и говорил проще $делать мой вариант и заного у$тановить это дело
#20
Отправлено 08 April 2012 - 02:01 PM
ИМХО, эти строки нужны для преобразования между двухбайтовыми и однобайтовыми кодировками, т.е. если база лежит в UTF, что совершенно избыточно для двуязычного интерфейса, т.к. вносит лишнее замедление. Кодировка latin1 вместо cp1251 ни на что не влияет и не требует раскомментирования тех строк, ведь содержимое базы будет просто отдаваться как есть, без преобразования, а "как есть" в cp1251 и latin1 одинаково. Радость от кодировки cp2151 вместо дефолтовой latin1, как я понимаю, будет только в том, что при работе в консоли mysql вместо квадратиков будут нормальные русские буквы.кодировка БД имеет значение. При создании БД нужно проверить кодировку, если она в cp1251 то таблицы создадутся тоже в cp1251 и эти строки попросту не нужны а если в UTF8 или не дай Боже в latin1 (что означает что хостеры олухи) - то тогда после подключения обязательно нужны те строки для преобразования в виндовую кодировку.