Нужно ли устанавливать ini_set ('default_charset', 'UTF-8') ;? - PullRequest
10 голосов
/ 22 ноября 2011

Моя структура для каждой страницы выполняет следующие действия:

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' ); тоже?

Ответы [ 4 ]

8 голосов
/ 22 ноября 2011

Нет, вам не нужно.

header('Content-Type: text/html; charset=UTF-8');

устанавливает это для каждой страницы уже

5 голосов
/ 03 января 2013

Пожалуйста, смотрите 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>";
}
5 голосов
/ 19 августа 2012

Когда дело доходит до http-заголовка, все в порядке, как объясняют другие ответы.

Но: есть некоторые функции, которые поддерживают кодировку по умолчанию

Из описания FILTER_SANITIZE_FULL_SPECIAL_CHARS :

Как и htmlspecialchars, этот фильтр знает о default_charset и, если последовательность Обнаружены байты, которые составляют недопустимый символ в текущем набор символов, то вся строка отклоняется, в результате чего Строка 0 длины.

3 голосов
/ 22 ноября 2011

default_charset INI настройки должны работать для вас. PHP всегда выводит кодировку символов по умолчанию в заголовке Content-type: используя этот параметр

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...