Начал верстать шаблон для LiveStreet и столкнулся с проблемой отображения русского языка, например в title ссылок, символами ������. Уже описанные на сайте решения проблем с кодировкой не помогают. Не понятным для меня является и то, что местами русский выводится нормально, а местами такими кракозяблами. Исходные данные проблемы и тех.информация для желающих помочь под катом.
ОС: Win XP SP3 Редактор: Dreamweaver CS3, добавление BOM отключено. LiveStreet: 0.3.1, без дополнительных модулей. Сборка сервера:VertrigoServ 2.21 Компоненты:
Apache 2.0.63
PHP 5.2.6
MySQL 5.0.51b
Smarty 2.6.19
PhpMyAdmin 2.11.7
ZendOptimizer 3.3.3
Все настройки по умолчанию, mbstring установлен. MySQL-кодировка: UTF-8 Unicode (utf8) Сопоставление соединения с MySQL: utf8_general_ci Тип базы данных: InnoDB Сравнение: utf8_general_ci
Проверял так же на последнем Denwer, с предварительной установкой mbstring и настройкой my.ini на работу с UTF-8, проблема та же.
Т.к. впервые имею дело со Smarty для основы я взял шаблон developer. В моем шаблоне другая структура вывода блоков, и просто редактированием файла стилей не обойтись. Проблема вылезла сразу, стоило из header_top.tpl вынести форму логина и профиль юзера в header_nav.tpl, файл header.tpl не редактировался, стили только начал писать. Код измененного header_top.tpl, из которого и вылазят кракозяблы (вопросики):
Кракозяблы вылазят в не зависимости от того, куда в этом файле добавить русский текст, в данном примере в тайтле ссылки на главнюю и в, добавленном для примера, тексте к ссылке на «Блоги» верхнего меню. При этом, если редактировать, к примеру, footer.tpl — русский текст в нем отображается нормально. Если просто добавить русский текст в header_top.tpl в установленном шаблоне developer, больше ничего не меняя то же все ОК.
Уже «убил» 2 дня, но до сих пор не понимаю каким образом появляется ср-1251, вместо указанной везде UTF-8. Единственное из известно мне, что не смог сделать так это прописать дополнительные директивы в .htaccess написанные в этом комментарии, т.к. после их добавлений вылетает 500-ая ошибка. Остается надежда только на вашу помощь.
P.S. Публикую в личном блоге, если проблема будет решена перенесу в «Решения проблем», если, конечно, останется такая возможность после этого топика ;)
18 комментариев
В настройках Apach`a какая кодировка дефолтная? (httpd.conf)
Отредактировал в AkelPad 4, не помогло.
Сомневаюсь, что дело в редакторе. Не один сайт в нем редактировался и все было ОК, да и footer.tpl я в нем же и редактировал и русский нормально отображался.
Сомневаюсь, что дело в редакторе. Не один сайт в нем редактировался и все было ОК, да и footer.tpl я в нем же и редактировал и русский нормально отображался.
Попробуйте для начала сделать все просто: запускаете денвер, устанавливаете чистый лс 0.3.1, скачиваете notepad++, редактируете файл и сохраняете в utf-8 без сигнатуры, и собссно смотрите. Так все точно должно работать. Прям мистика какая-то.
За 2 дня пару раз даже Denwer переустанавливал в добавок к вышеперечисленному. Правда вместо notepad++ пользуюсь Dreamweaver, но и в нем по мимо отключенного ВОМ еще и «Форму приведения к Unicode» изменял.
Да и в место Denwer, я обычно запускаю все в Vertrigo, продукте не русском и по умолчанию там никакими ср-1251 и прочим недоразумением не пахнет.
Файл присутствует, если изменять в нем, то с русским все ОК.
Вы предлагаете все текстовки добавлять в него?
Может это и позволит избежать проблемы, но ведь решит ее.
Тогда нубский вопрос: Не скажется ли на общей производительности то, что этот файл будет в разы больше существующего и то, что обращений к нему (вызовов $aLang.) то же будет сильно больше?
18 комментариев
Я правильно ищю?
Не ожидал такого быстрого ответа, спасибо.
AddDefaultCharset utf-8
и рестартаните сервер.
Попробуйте другой редактор.
Сомневаюсь, что дело в редакторе. Не один сайт в нем редактировался и все было ОК, да и footer.tpl я в нем же и редактировал и русский нормально отображался.
Попробуйте для начала сделать все просто: запускаете денвер, устанавливаете чистый лс 0.3.1, скачиваете notepad++, редактируете файл и сохраняете в utf-8 без сигнатуры, и собссно смотрите. Так все точно должно работать. Прям мистика какая-то.
За 2 дня пару раз даже Denwer переустанавливал в добавок к вышеперечисленному. Правда вместо notepad++ пользуюсь Dreamweaver, но и в нем по мимо отключенного ВОМ еще и «Форму приведения к Unicode» изменял.
Да и в место Denwer, я обычно запускаю все в Vertrigo, продукте не русском и по умолчанию там никакими ср-1251 и прочим недоразумением не пахнет.
Файл присутствует, если изменять в нем, то с русским все ОК.
Вы предлагаете все текстовки добавлять в него?
Может это и позволит избежать проблемы, но ведь решит ее.
И да, это не будет нарушать архитектурную логику LiveStreet (ort как бе намекает).
P.S. С переносом в тематический блог пока подожду, вдруг источник глюка будет найден.