Страница 1 из 1

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-03-19, 12:41:56
lissyara
по умолчанию, все версии php новее 5.5 шлют заголовок с типом содержимого text/hml и указанием кодировки - UTF8

соответственно ломается отображение сайтов с иными кодировками, т.к. браузер считает приоритеной кодировку из заголовка, а не прописанную в meta теге страницы.

если возможности перекодировать все страницы, базу и т.п. нет, а самих страниц много и каждая - отдельный файл то можно сделать такой костыль:
1. кладём в директорию с сайтом, или в директорию www (если сайтов много) файлик .htaccess c таким содержимым:

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

# file before all php scripts
php_value auto_prepend_file "/home/ИМЯ-АККАУНТА-НА-СЕРВЕРЕ/data/www/charset.php"
и фалик, по тому пути что в .htaccess указан, в данном случае /home/ИМЯ-АККАУНТА-НА-СЕРВЕРЕ/data/www/charset.php со следующим содержимым

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

<?php

Header('Content-Type: ')

?>
всё. при обработке любых скриптов будет подключаться этот файл и выдаваться пустой заголовок с типом.
что приводит к тому что заголовок вообще не отсылается, а значит будет отображатсья в кодировке указанной в meta теге страницы, как и было в старых версиях php

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-03-19, 13:12:38
ZZIIKKemd
Мне еще помогало в .htaccess сайта (или в .htaccess /www, если сайтов много) прописать

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

DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset "cp1251"
Ну и если koi8-r, то ее писать вместо windows-1251 и cp1251.

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-03-20, 16:24:19
lissyara
мда... а я знатный костыль нарисовал, вместо такого простого решения =)
--
для альтернативной версии php, кстати, тоже можно поменять.
открываем на редактирование файл php-bin-isp-php56/php.ini (если версия 5.6 соответственно) и правим в нём пункт

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

default_charset = "utf-8"
на

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

default_charset = "cp1251"
но это ровно до первой правки параметров проживёт. чтобы жило и дальше, надо ещё добавить такую же строчку

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

default_charset = "cp1251"
в файл php-bin-isp-php56/.php.ini

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-14, 17:54:03
WASP
Сегодня слетела кодировка...
Прописал в .htaccess но все статьи по прежнему в крякозябрах...

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-14, 19:51:42
lissyara
вероятно, предполагается что сайт угадаем телепатическим методом? =)

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-15, 11:50:14
WASP
_http://wasp-kz.ru
Сколько раз исправлял кодировки на сайтах, а здесь чего-то не выходит...

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-15, 12:47:06
lissyara
сообщения в базе, как я понимаю.
у вас уже в базу залито в неправильной кодировке.

перезалейте в нормальной, и всё заработает

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-16, 6:55:58
WASP
Все ведь нормально отображалось... А потом - бац... и одни вопросики )))

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-16, 13:03:10
lissyara
нет, такого не может быть
у вас в базе данных вопросики вместо символов. залейте базу в корерктной кодировке и всё зработает

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-16, 16:51:01
WASP
Как не может быть? Вы посмотрите даты публикаций. Если б я размещал статью и она отображалась бы некорректно, а все остальное корректно - вряд ли бы я это не исправил бы.

Именно так - весь сайт отображался нормально. Кодировка сайта UTF-8, и сейчас она же в БД... Исправил в .htaccess на 1251, движок стал отображаться нормально, весь мой контент - нет.

Отправлено спустя 1 минуту 9 секунд:
Этот сайт - не суть важно, важно то, что я планировал перенос других сайтов сюда...

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-16, 17:51:45
lissyara
за 14 число у вас ещё нормальная база, а вот с 15 - уже битая.

вы ничего не делали между этими датами?

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2016-07-17, 9:24:35
WASP
О, все заработало - отремонтировали!

-----

Копаться в БД без крайней нужды?.. не... Ну а если надо, то обязательно бэкап.

Исправление кодировки на новых версиях php, для сайтов с cp1251 или koi8-r

Добавлено: 2017-10-20, 11:21:53
rust777
помогло
но на всех страницах выходят символы (один раз на странице)
п»ї