Мне нужно установить ini_set ('default_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, этот фильтр знает о файле default_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:, используя этот параметр