• Версия для печати

Принудительный UTF-8 для контента

Описание: Настройка, обслуживание, эксплуатация, управление панелью ISPConfig 3. А так же обсуждение установки и оптимизация сайта под ISPConfig 3
Правила раздела: Условием использования нашего форума, является соблюдение настоящих Правил форума.


Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам, а вы рискуете получить предупреждение.
Модератор: kulia

Автор
Сообщение
mpflash
Автор темы
mpflash
Автор темы
Репутация: 0
Лояльность: 0
Сообщения: 9
С нами: 4 года 2 месяца

#1 mpflash » Пт, 27 мая 2016, 0:58

Итак, хотелось бы поделится решением проблемы, связанной с крокозябрами, то есть выводом контента вместо win1251 - UTF8.

Поголовно на всех форумах в интернете пишут все одно и тоже:

1. Добавление строки AddDefaultCharset CP1251 в конфиг апача либо htaccess
2. А также выяснением корректности строки в контенте <meta http-equiv='Content-Type' content='text/html; charset="windows-1251' >;
3. Другие варианты с добавлением header('Content-type: text/html; charset=****') в начало РНР файла.

но далеко не у всех получается решить свою проблему.

Прекрасный плагин для мозиллы, Domain Details, показывающий везде заголовки сервера
1.png
1.png (3.82 КБ) 301 просмотр

показал в нижней строке Content-Type: text/html; charset=utf-8, в то время как прошлый мой сервер отображает Content-Type: text/html; и проблем никаких нет и выводом контента. Разумеется эта информация только подвердила тот факт, что беда именно в этом.

Далее решил зайти и поглядеть на заголовки, выдаваемые при посещении статического контента ROBOTS.txt, заголовки были идентичные, с этой же последней строкой Content-Type: text/html; charset=utf-8, уверенно зная(видимо оказалось моей ошибкой), что статический контент точно обрабатывается апачем минуя РНР, продолжил искать беду именно в апаче, пока не обнаружил в php-info следующую директиву: default_charset : UTF-8 в новом дебиан8, в дебиан6 директива была равна пустоте. Полез сравнивать конфиги PHP.INI старого 6 и новым 8 дебианом, Результат:

Код: Выделить всё

; PHP's default character set is set to empty.
; http://php.net/default-charset
; default_charset = "iso-8859-1"

Код: Выделить всё

; PHP's default character set is set to UTF-8.
; http://php.net/default-charset
default_charset = "UTF-8"


закоментировать строку не достаточно, т.к как в отличие от первого варианта где по умолчанию и так пустота, во втором варианте будет все равно UTF-8, поэтому нужно указать именно так:

Код: Выделить всё

default_charset =
.
Уверен что лезть в РНР.INI было не обязательно, достаточно прописать эту строку в опциях сайта в самом ISPCONFIG, и все же надеюсь информация будет полезной, т.к поголовно везде все ссылаются именно на апач не РНР. Ну или я просто плохо искал.
Строгое предупреждение от модератора !
Название темы должно соответствовать содержанию. Причём тут "Debian8 + autoinstall-4.0."? Исправлено.

Вернуться в «ISPConfig 3»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость