как мне установить значение char по умолчанию равным null в php

#php #mysql

#php #mysql

Вопрос:

Привет всем на странице phpinfo, я нахожу кодировку UTF-8. Тип содержимого текст / html; кодировка = UTF-8 Я хочу удалить кодировку равную null без изменения в файле php.ini, возможно ли это.

Комментарии:

1. вы пробовали header («Content-Type text / html; charset=ANY_THING_THAT_NOT_STANDARD_CHRSET»)?

2. Не существует такого понятия, как «нулевая кодировка».

Ответ №1:

Вы можете установить поверх вашего файла ini_set("default_charset", "");

Комментарии:

1. Или .htaccess >>> php_value default_charset null

Ответ №2:

«Нулевая кодировка» совпадает с ISO-8859-1 в соответствии с RFC 2616:

Когда отправитель не предоставляет явного параметра кодировки, подтипы мультимедиа типа «text» определяются как имеющие значение кодировки по умолчанию «ISO-8859-1» при получении через HTTP.

Следовательно, установка кодировки в ISO-8859-1 — это то же самое, что вообще не устанавливать никакой кодировки. Однако, поскольку Google Chrome реализует это неправильно (по умолчанию используется UTF-8), вам действительно следует рассмотреть возможность явной установки кодировки на ISO-8859-1 (или любую другую кодировку, которую вы используете).

Комментарии:

1. Теоретически это правильный ответ; обратите внимание, что из-за множества неаккуратных веб-страниц это не совсем верно на практике; большинство браузеров выполняют своего рода анализ кодировки, чтобы определить вероятную кодировку.

2. Большинство браузеров ошибаются, когда пытаются просмотреть кодировку, поэтому лучше всего по-прежнему устанавливать ее явно.

3. Действительно, лучше всего установить его явно; но большинство перехватов на самом деле делают это правильно (так что пользователь даже не замечает). Однако, когда эвристика завершается неудачей, результаты хорошо видны, что приводит к предположению «обычно это завершается неудачей». Да, это резервная мера на крайний случай, и да, сервер должен знать и рекламировать, какую кодировку он использует. Увы, все еще существуют неработающие сайты — и пользователи воспринимают это как неработающий браузер .

4. Я видел множество сайтов, где браузеры используют UTF-8, когда он должен быть ISO-8859-1. Я считаю, что это сломанный браузер.

5. Если браузер по умолчанию использует кодировку, отличную от ISO-8859-1, она также нарушена. Я имел в виду сайты, которые отправляют конфликтующие данные: в заголовках не указана кодировка, в мета-тегах указана одна кодировка, фактически используются разные символы. Раньше это было довольно распространенным явлением, к счастью, оно постепенно исчезает.

Ответ №3:

Если у вас есть права для этого, вы можете переопределить настройки INI для каждого скрипта. В противном случае вы можете просто вывести переопределяющий заголовок: header("Content-type: text/html; charset=ISO-8859-1"); или включить его непосредственно в свой HTML-вывод как <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" /> , очевидно, заменив ISO-8859-1 на то, что вы хотите.

Комментарии:

1. Он не хотел быть ничем, ни utf8, ни iso-8859-1. Для меня это странно, но в любом случае…

Ответ №4:

Вы можете вывести заголовок, чтобы установить его:

 header('Content-type: text/html; charset=YOUR_CHARSET');
  

Если вы не зададите кодировку в этом заголовке, браузер попытается угадать самостоятельно, что не рекомендуется. В большинстве случаев в западных странах это предположение соответствует ISO-8859-1 или ISO-8859-15.

Ответ №5:

 header('Content-Type: text/html'); // note the absence of charset=
  

Обратите внимание, однако, что нет ничего подобного «нулевой кодировке», всегда есть какое-то отображение между байтами и символами (даже ASCII является таким отображением, а не естественным порядком вещей). То, что вы делаете, это сообщаете браузеру «Я не знаю, что это за кодировка, просто сделайте предположение», которое может выбирать или не выбирать фактическую кодировку.