Символы букв в место букв

Автор atwooo, 05 апреля 2013, 18:05:29

« назад - далее »

atwooo

Доброго времени суток.
Недавно смотрел HTML код страницы и обнаружил символы в место русских букв
Вот пример:
<title>&#1052;&#1103;&#1075;&#1082;&#1072;&#1103; &#1084;&#1077;&#1073;&#1077;&#1083;&#1100; - bestmebel.com - bestmebel.com - &#1052;&#1077;&#1073;&#1077;&#1083;&#1100;&#1085;&#1099;&#1081; &#1080;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090;-&#1084;&#1072;&#1075;&#1072;&#1079;&#1080;&#1085;</title>

Причем такое поведение присутствует именно там где шаблон выводит не текст а переменную.
Пробовал проверить кодировку документа... она в UTF-8 и пробовал менять в админке на дефолтный шаблон... толку никакого.
Может кто подскажет в чем дело и как можно исправить это?

DarinSr

Это из-за того, что кодировка базы не utf8.

atwooo

Она именно в ней!
Я провел эксперемент... установил чисты абсолютно не тронутый движок...
Там такая же лажа...

Виктор Демидов

#3
Для проверки базы данных.
На главной страницы phpMyAdmin, сделайте запрос через вкладку "SQL"
SHOW GLOBAL VARIABLES;
и смотрите вывод этого запроса. Только переменные начинающиеся с
character_
collation_


Есди у вас только переменная в title имеет такой вид, а остальные поля с русским тестом показанны правильно, то проверьте кодировку браузера. Кодировку поля
meta_title
в таблице
ps_product_lang

atwooo

После выполнения этого действия я уже сомневаюсь что у меня кодировка UTF8 SHOW GLOBAL VARIABLES;
Скриншот прилагается!
Возможно что из за этого все так криво?
Если да то может кто знает как полечить?

atwooo

До кучи еще выкачал всю базу и открыл ее в нотпад++
И нотпад++ говорит что файл в кодировке UTF-8 без BOM

DarinSr

Изменить нужно  collation_connection


atwooo

Как показано на скрине там стоит то что и у вас!
А вот в чем было дело!
Полез еще раз смотреть html сайта и обратил внимание на то что у меня в тайтле все криво а в мета дискрипшн все ок!
попытался сравнить уже в header.tpl эти две строки
Цитировать<title>{$meta_title|escape:'htmlall':'UTF-8'}</title>
<meta name="description" content="{$meta_description|escape:html:'UTF-8'}" />
Заметил что в title написано htmlall а в meta name="description просто html
убрал из title all и оставил только html
Все ок! теперь тайтл не символами а русскими буквами)))
Единственное только я слабо понимаю что я сделал и что это за all??
Если кто объяснит будет отлично))

petros

Escape Smarty
{$articleTitle|escape:'html'}    {* экранирует  & " ' < > *}
{$articleTitle|escape:'htmlall'} {* экранирует ВСЕ HTML-теги *}

Так что не в этом дело, если только в заголовке не используются теги.

atwooo

Подскажите адрес сайта
И если не сложно вставьте сюда код header.tpl из вашей темы

petros

header.tpl
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$lang_iso}">
<head>
<title>{$meta_title|escape:'htmlall':'UTF-8'}</title>
{if isset($meta_description) AND $meta_description}
<meta name="description" content="{$meta_description|escape:html:'UTF-8'}" />
{/if}
{if isset($meta_keywords) AND $meta_keywords}
<meta name="keywords" content="{$meta_keywords|escape:html:'UTF-8'}" />

petros

Цитата: atwooo от 05 апреля 2013, 18:05:29
Доброго времени суток.
Недавно смотрел HTML код страницы и обнаружил символы в место русских букв
Вот пример:
<title>&#1052;&#1103;&#1075;&#1082;&#1072;&#1103; &#1084;&#1077;&#1073;&#1077;&#1083;&#1100; - bestmebel.com - bestmebel.com - &#1052;&#1077;&#1073;&#1077;&#1083;&#1100;&#1085;&#1099;&#1081; &#1080;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090;-&#1084;&#1072;&#1075;&#1072;&#1079;&#1080;&#1085;</title>
Title в кодировке iso8859-5

atwooo

Замените
Цитировать<title>{$meta_title|escape:'htmlall':'UTF-8'}</title>
на
Цитировать<title>{$meta_title|escape:'html':'UTF-8'}</title>

И включите принудительную перекомпиляцию и отключите кэш.

brus powerfull

Добрый день.

Подскажите пожалуйста, как можно поменять значение переменной Global Veriables в таблице MySQL?
У меня проблема с кодировкой на сайте: поставил ссылку на страницу товара, а она отображается заковыками, вместо русских букв.

DarinSr

Если у вас только одна фраза показывается неправльно, тогда нужно менять кодировку файла шаблона.
Откройте файл TPL в редакторе, измените кодировку в настройках, измените фразу, сохраните файл в UTF-8 (не unicode, а имено utf8).