На declare()
страница руководства по PHP:
кодирование
Кодировка скрипта может быть указана для каждого скрипта с использованием кодировки
директивы.Пример № 3 Объявление кодировки для скрипта.
<?php declare(encoding='ISO-8859-1'); // code here ?>
Что это делает именно? Как эта директива влияет на поведение скрипта?
Чем это отличается от установки директив mbstring.internal_encoding
(до PHP 5.6) и default_charset
(начиная с PHP 5.6) или используя mb_internal_encoding()
функционировать?
(Я использую PHP 5.3 и 5.5. В настоящее время мои файлы сохраняются в UTF-8, и я отправляю заголовок Content-Type: text/html; charset=utf-8
при обслуживании файлов HTML.)
PHP 5.6 поставляется с новой директивой charset по умолчанию, установленной на UTF-8, в некоторых случаях это может быть проблемой для страниц, обслуживаемых в метатеге как latin1, вы можете переопределить эту директиву, вызвав ini_set (‘default_charset’, ‘iso-8859-1) ‘) в ваших скриптах.
Для этого поместите каждый php-файл, который вы хотите закодировать на латиницу 1, в начале вашего скрипта:
пример: index.php
<?php
$server_root = realpath($_SERVER["DOCUMENT_ROOT"]);
$config_serv = "$server_root/php/config.php";
include("$config_serv");
?>
Затем создайте папку «php» под вашим корневым сайтом и поместите этот фрагмент кода в config.php:
пример: config.php
<?php
##########################################################################
# Server Directive - Override default_charset utf-8 to latin1 in php.ini #
##########################################################################
@ini_set('default_charset', 'ISO-8859-1');
?>
Если ваш php.ini настроен на latin1 (ISO-8859-1) и вы хотите обслуживать страницу utf-8 (unicode), вы можете принудительно закодировать код, используя вместо iso-8859-1, utf-8. Посмотри на это:
пример: config.php
<?php
##########################################################################
# Server Directive - Override default_charset latin1 to utf-8 in php.ini #
##########################################################################
@ini_set('default_charset', 'UTF-8');
?>
Я надеюсь, что вы найдете мой ответ полезным, я решил свою проблему таким образом!
Других решений пока нет …