Я хочу, чтобы мой вывод Nginx ISO-8859-1, а не UTF-8:
#curl -I www.xyz.com
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 26 Feb 2016 15:36:47 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.10-1ubuntu3.21
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
У меня было это в моей конф:
server {
...
charset iso-8859-1;
...
}
Я попытался поместить его в мой файл etc / nginx / nginx.conf, в мой файл etc / nginx / site-enabled / app.conf, почти во всех местах, где я могу, но не повезло …
Это мой язык:
#locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"LC_NUMERIC="fr_FR.UTF-8"LC_TIME="fr_FR.UTF-8"LC_COLLATE="fr_FR.UTF-8"LC_MONETARY="fr_FR.UTF-8"LC_MESSAGES="fr_FR.UTF-8"LC_PAPER="fr_FR.UTF-8"LC_NAME="fr_FR.UTF-8"LC_ADDRESS="fr_FR.UTF-8"LC_TELEPHONE="fr_FR.UTF-8"LC_MEASUREMENT="fr_FR.UTF-8"LC_IDENTIFICATION="fr_FR.UTF-8"LC_ALL=
Я понятия не имею, что делать дальше …
NB: я работаю над док-контейнером для репликации старого сервера под управлением PHP5.3, потому что мне нужен REGISTER_GLOBAL ..
Если кодировка уже определена в заголовке Content-Type PHP, поведение Nginx по умолчанию — не касаться кодировки. Чтобы изменить это поведение, вы должны установить override_charset директива «на».
Я предполагаю, что вы не пробовали это, но вы должны установить default_charset в вашем php.ini в кодировку, которую вы хотите, вместо того, чтобы конвертировать ее с Nginx.
Проверьте, является ли ваш PHP-скрипт не явно выводя charset
приписывать. Если нет, то я предполагаю, что конфигурация PHP по умолчанию в Ubuntu (это является по умолчанию в Debian) добавляется кодировка UTF-8, и теперь вы можете изменить ее только в nginx, настроив таблицу преобразования, чтобы снова вернуться из UTF-8 в ISO-8859-1, что является пустой тратой (и требует времени для настройки).
Так что в основном у вас есть три два варианта:
Измените свой сценарий, чтобы добавить charset=iso-8859-1
атрибут явно в Content-type
заголовок.
Измени свой default_charset
вариант в php.ini
, Это, однако, изменит символ по умолчанию в все PHP-скрипты, запускаемые вашими серверами nginx (т.е. вам лучше знать, что вы делаете).
Измените кодировку по умолчанию только в блоке FPM, используемом вашим сервером ISO-8859-1. Это можно сделать, добавив следующую строку в свой блок конфигурации FPM: fastcgi_param PHP_ADMIN_VALUE "default_charset=iso-8859-1";
РЕДАКТИРОВАТЬ: В конце концов, вариант 3 фактически установит default_charset
на PHP-FPM, как они запланированы для вашего сервера, и вариант будет придерживаться, так что это почти то же самое, что и 2, только более непредсказуемо.