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

Вопросы о том как и что сделать чтобы работало
Правила форума
1. Один вопрос - одна тема. Не надо задавать в той же теме другие вопросы.
2. Не пишите в чужих темах, если ваша проблема не имеет отношения к обсуждаемой.
3. Давайте полное описание проблемы - имя сайта, имя сервера, учётная запись, способ воспроизведения, скриншот ошибки.
4. Пароли выкладывать в форум - НЕ НАДО
Ответить
lissyara
Site Admin
Сообщения: 6450
Зарегистрирован: 2009-09-19, 22:04:41

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

Сообщение 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
Убей их всех! Бог потом рассортирует...
Аватара пользователя
ZZIIKKemd
Сообщения: 70
Зарегистрирован: 2013-05-17, 16:30:59
Контактная информация:

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

Сообщение ZZIIKKemd »

Мне еще помогало в .htaccess сайта (или в .htaccess /www, если сайтов много) прописать

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

DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset "cp1251"
Ну и если koi8-r, то ее писать вместо windows-1251 и cp1251.
С уважением, Зыков Андрей.
Сотрудник службы техподдержки.
lissyara
Site Admin
Сообщения: 6450
Зарегистрирован: 2009-09-19, 22:04:41

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

Сообщение 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
Убей их всех! Бог потом рассортирует...
WASP
Сообщения: 5
Зарегистрирован: 2016-07-14, 17:51:43

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

Сообщение WASP »

Сегодня слетела кодировка...
Прописал в .htaccess но все статьи по прежнему в крякозябрах...
lissyara
Site Admin
Сообщения: 6450
Зарегистрирован: 2009-09-19, 22:04:41

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

Сообщение lissyara »

вероятно, предполагается что сайт угадаем телепатическим методом? =)
Убей их всех! Бог потом рассортирует...
WASP
Сообщения: 5
Зарегистрирован: 2016-07-14, 17:51:43

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

Сообщение WASP »

_http://wasp-kz.ru
Сколько раз исправлял кодировки на сайтах, а здесь чего-то не выходит...
lissyara
Site Admin
Сообщения: 6450
Зарегистрирован: 2009-09-19, 22:04:41

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

Сообщение lissyara »

сообщения в базе, как я понимаю.
у вас уже в базу залито в неправильной кодировке.

перезалейте в нормальной, и всё заработает
Убей их всех! Бог потом рассортирует...
WASP
Сообщения: 5
Зарегистрирован: 2016-07-14, 17:51:43

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

Сообщение WASP »

Все ведь нормально отображалось... А потом - бац... и одни вопросики )))
lissyara
Site Admin
Сообщения: 6450
Зарегистрирован: 2009-09-19, 22:04:41

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

Сообщение lissyara »

нет, такого не может быть
у вас в базе данных вопросики вместо символов. залейте базу в корерктной кодировке и всё зработает
Убей их всех! Бог потом рассортирует...
WASP
Сообщения: 5
Зарегистрирован: 2016-07-14, 17:51:43

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

Сообщение WASP »

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

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

Отправлено спустя 1 минуту 9 секунд:
Этот сайт - не суть важно, важно то, что я планировал перенос других сайтов сюда...
lissyara
Site Admin
Сообщения: 6450
Зарегистрирован: 2009-09-19, 22:04:41

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

Сообщение lissyara »

за 14 число у вас ещё нормальная база, а вот с 15 - уже битая.

вы ничего не делали между этими датами?
Убей их всех! Бог потом рассортирует...
WASP
Сообщения: 5
Зарегистрирован: 2016-07-14, 17:51:43

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

Сообщение WASP »

О, все заработало - отремонтировали!

-----

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

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

Сообщение rust777 »

помогло
но на всех страницах выходят символы (один раз на странице)
п»ї
Ответить