Ответ 1
Нет, вам не обязательно.
header('Content-Type: text/html; charset=UTF-8');
устанавливает это для каждой страницы уже
Мои рамки для каждой страницы выполняют следующие действия:
ini_set('mbstring.internal_encoding','UTF-8');
ini_set('mbstring.func_overload',7);
header('Content-Type: text/html; charset=UTF-8');
Нужно ли также делать ini_set( 'default_charset', 'UTF-8' );
?
Нет, вам не обязательно.
header('Content-Type: text/html; charset=UTF-8');
устанавливает это для каждой страницы уже
Когда дело доходит до http-заголовка, вы в порядке, как объясняют другие ответы.
Но: Есть некоторые функции, которые известны по умолчанию в кодировке
Из описания FILTER_SANITIZE_FULL_SPECIAL_CHARS:
Подобно htmlspecialchars, этот фильтр знает о умолчанию_charset и если последовательность байтов, который составляет недопустимый символ в текущем набор символов, тогда вся строка отклоняется, что приводит к Строка длиной 0.
См. https://bugs.php.net/bug.php?id=29983 выглядит так, как будто у некоторых дистрибутивов есть проблема
тестовый пример
echo "ini_get('default_charset') ". ini_get('default_charset')."<br>";
if (!ini_set('default_charset', 'utf-8')) {
echo "could not set default_charset to utf-8<br>";
}
default_charset ini настройка должна работать для вас. PHP всегда выводит кодировку символов по умолчанию в заголовке Content-type:, используя этот параметр