Перенос сайтов на другую машину.

Кракозяблы на сайте.
Author
Message

Есть как минимум два сайта. Хостились они на старом сервере который обновить нет возможности.
Принято решение раскидать сайты по контейнерам LXC или виртуальным машинам.
Сделали дамп базы. И Архив файлов сайта перенесли на новую машину. Установили Apache2 PHP5.6 MySQL
Кодировка базы тоже совпадает, но при этом сайт не отображается нормально. Я вижу вот такой текст "икуда ходить и н"
На одном сайте часть есть с Русскими символами в меню она отображается. Всё остальное кракозяблы.
На другом сайте полностью всё в кракозяблах.
Версия движка старая но задачи нет её обновлять. У одного версия 130 у второго 120
В чём может быть причина? Какую информацию я могу предоставить что бы вы могли помочь разобраться в этой ситуации ?

Try downgrading to php 5.4.

 

В чём может быть причина? Какую информацию я могу предоставить что бы вы могли помочь разобраться в этой ситуации ?

Приведите данные по кодировкам. В какой кодировке сайт, tpl файлы,php файлы, какую кодировку отдаёт сервер, что в meta http-equiv="content-type"?. В какой кодировке отдаётся данные MySQL.

На одном сайте часть есть с Русскими символами в меню она отображается. Всё остальное кракозяблы.

Тут явно понятно, что сервер отдаёт сайт в нужной кодировке, а вот MySQL нет.

попробуйте в common.php там где устанавливается соединение с базой сразу за sed_sql_connect задействовать принудительно нужный набор символов и сопоставление:

sed_sql_query("SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'");

или так

sed_sql_query("SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");

 

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!

В настройках движка в скинах указан Document Type: «XHTML 1.0 Transitional» Пробовал менять не чего не происходит.
Там же указана HTML charset: «UTF-8 / Standard Unicode»

Страница /skins/asspirithq/page.tpl
<!-- BEGIN: MAIN -->
<div id='content-wrapper'>
        <div id='maintop-container'>
                <div class='container'>
                        <ul class='breadcrumb'>
                                <li><a href='index.php'>Главная</a></li>
                                <li>{PAGE_SHORTTITLE}</li>
                        </ul>
                        <h1>{PAGE_SHORTTITLE}</span></h1>
                        <div class='row'>
                                <div id='content' class='col-md-12 shopping-cart' role='main'>
                                        <div class='page_box'>
                                                        <!-- BEGIN: PAGE_ADMIN -->
                                                                <div class=«adminlinks»>
                                                                        {PAGE_ADMIN_UNVALIDATE}   {PAGE_ADMIN_EDIT}   ({PAGE_ADMIN_COUNT})<br />
                                                                </div>
                                                        <!-- END: PAGE_ADMIN -->
                                        </div>
                                        {PAGE_TEXT}
                                </div>
                        </div>
                </div>
        </div>
</div>
<!-- END: MAIN -->


В странице /system/functions.php Пробовал сменить на charset=UTF-8 не помогло.
meta http-equiv=\«content-type\» content=\«text/html; charset=iso-8859-1\» />
<meta http-equiv=\«refresh\» content=\«0; url=».$url."\" />
<title>Redirecting...</title></head>
<body>Redirecting to <a href=\"".$url."\">".$cfg['mainurl']."/".$url."</a>

 


curl http://nnn.com -s -o /dev/null -D /dev/stdout | grep -E 'charset'
curl http://nnn.com/page.php?al=dostavkaobedov -s -o /dev/null -D /dev/stdout | grep -E 'charset'

wget -S http://nnn.com/var/www/ftptgsnt/data/www/tgs-nt.ru -O — > /dev/null
wget -S http://fiesta-nt.ru -O — > /dev/null

Сайт отдаёт кодировку при запросе Curl «Content-Type: text/html;charset=UTF-8»
Wget так же отдаёт кодировку «Content-Type: text/html;charset=UTF-8»


С данной командой в файле /system/common.php не чего не меняется «sed_sql_query(»SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'");"
C кодировкой cp1251_general_ci в файле /system/common.php

Если кракозяблы прогнать через декодер кодировки к примеру этот https://2cyr.com/decode/?lang=ru
Он выдаёт что результат моих кракозябл это кодировка Результат (исходная кодировка: WINDOWS-1251)

#51827 Amro :

В чём может быть причина? Какую информацию я могу предоставить что бы вы могли помочь разобраться в этой ситуации ?

Приведите данные по кодировкам. В какой кодировке сайт, tpl файлы,php файлы, какую кодировку отдаёт сервер, что в meta http-equiv=«content-type»?.. В какой кодировке отдаётся данные MySQL.

На одном сайте часть есть с Русскими символами в меню она отображается. Всё остальное кракозяблы.

Тут явно понятно, что сервер отдаёт сайт в нужной кодировке, а вот MySQL нет.

попробуйте в common.php там где устанавливается соединение с базой сразу за sed_sql_connect задействовать принудительно нужный набор символов и сопоставление:

sed_sql_query("SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'");

или так

sed_sql_query("SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");

Отписал. Забыл прожать цитату.

 

Если у вас сайт в WINDOWS-1251 кодировке то сервер должен отдавать WIN кодировку. Соответсвенно и база должна быть в cp1251 и мускул должен отдавать именно win набор символов.

Если файлы сайта в UTF-8 кодировке то и база долджна быть в utf8 и мускул должен отдавать юникод.

Копайте в эту сторону, а не занимайтесь херней с декодерами. Если на старом хосте всё работало, значит проблема именно  в настройках сервака.

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

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!