Я использую хостинговую компанию, и она перечислит файлы в каталоге, если файла index.html
там нет, в качестве кодировки по умолчанию используется iso-8859-1.
Если сервер Apache, есть ли способ вместо этого установить UTF-8 по умолчанию?
Обновление: Кроме того, я обнаружил, что на самом деле он использует DOCTYPE HTML 3.2, а затем вообще нет кодировки ... поэтому он не устанавливает никакой кодировки. Но есть ли способ изменить его для использования UTF-8?
apache
character-encoding
apache-config
неполярность
источник
источник
/etc/apache2/conf-available/charset.conf
Добавьте это в свой
.htaccess
:Или, если у вас есть права администратора, вы можете установить его глобально, отредактировав
httpd.conf
и добавив:(Вы также можете использовать
AddDefaultCharset
in.htaccess
, но это не повлияет на списки каталогов, сгенерированные Apache.)источник
.htaccess
может повлиять на все подкаталоги, вероятно, apache будет искать любой.htaccess
родительский каталог вплоть до корневого каталога папки веб-сайта.htaccess
работает на всех серверах - это также влияет на все подкаталоги. Однако страницы со списком каталогов, сгенерированные Apache, нельзя принудительно перевести в UTF-8 с помощью.htaccess
(AFAIK)..htaccess
файлы, как правило, является плохой практикой. Ошибки становится труднее отслеживать, когда настройки сервера распределяются по разным файлам. Также наблюдается небольшое снижение производительности: с каждым запрошенным файлом Apache должен читать.htaccess
файл каталога и все.htaccess
файлы родительских каталогов..htaccess
поэтому следует использовать только либо для настроек, специфичных для каталога (например, для предотвращения доступа к определенному каталогу), либо когда нет абсолютно никакой возможности получить права администратора.См Директива AddDefaultCharset , Директива AddCharset , и эта статья .
источник
Поместите
AddDefaultCharset UTF-8
в/etc/apache2/conf.d/charset
. Фактически, он уже там. Вам просто нужно раскомментировать его, удалив предыдущее#
.источник
/etc/apache2/conf.d/charset
. Это настраиваемый включаемый файл вашего дистрибутива. Как и любой другой файл, которого нетhttpd.conf
./etc/apache2/conf-enabled/charset.conf
в моем дистрибутиве (Ubuntu 16.4). Тоже не работал.В .htaccess добавьте эту строку:
Это для тех, кто не имеет доступа к файлу conf своего сервера. Это еще одна вещь, которую можно попробовать, когда другие попытки потерпели неудачу.
Что касается проблем с производительностью при использовании .htaccess, я этого не видел. Обычно время загрузки моей страницы составляет 150-200 мс с .htaccess или без него.
Что хорошего в производительности, если ваша страница отображается некорректно. Большинство общих серверов не разрешают пользователю доступ к файлу конфигурации, который является предпочтительным местом для добавления набора символов.
источник
.htaccess
файлы, не начинайте сейчас. Это плохая идея по причинам производительности и административным причинам (tm)Я не уверен, есть ли у вас доступ к конфигурации Apache (httpd.conf), но вы должны иметь возможность установить директиву AddDefaultCharset. Увидеть:
http://httpd.apache.org/docs/2.0/mod/core.html
Найдите модуль mod_mime.c и убедитесь, что установлено следующее:
или эквивалентные документы Apache 1.x ( http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset ).
Однако это работает только в том случае, если «тип содержимого ответа - text / plain или text / html».
Вы также должны убедиться, что на ваших страницах также установлена кодировка. См. Это для получения дополнительной информации:
http://www.w3.org/TR/REC-html40/charset.html
источник
Это не проверено, но, вероятно, сработает.
В вашем файле .htaccess поместите:
Однако для этого на сервере потребуется mod_headers.
источник
<Files>
теги.Для полноты картины на Apache2 в Ubuntu кодировку по умолчанию можно найти в charset.conf в conf-available.
Раскомментируйте строку
источник
Если все файлы HTML находятся в кодировке UTF-8 и не имеют метатегов для типа содержимого, я смог установить необходимое значение по умолчанию для отправки этих файлов с помощью Apache 2.4, только добавив обе директивы:
источник
Просто подсказка, если у вас длинные имена файлов в utf-8: по умолчанию они будут сокращены до 20 байтов, поэтому может случиться так, что последний символ может быть «разрезан пополам» и, следовательно, не распознан должным образом. Тогда вы можете установить следующее:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
настройка предотвратит сокращение ваших имен файлов, сделав их правильно отображаемыми и читаемыми.Как уже упоминали другие пользователи, это следует добавить либо в
httpd.conf
илиapache2.conf
(если у вас есть права администратора), либо в.htaccess
(если у вас их нет).источник
Просто оставьте поле пустым:
'default_charset' in WHM :::::: default_charset =''
ps - В WHM go --------) Главная »Конфигурация службы» Редактор конфигурации PHP ----) нажмите «Расширенный режим» ----) найдите «default_charset» и оставьте его пустым - просто ничего, ни utf8, ни ISO
источник
<meta charset = 'utf-8'> отменяет кодировку apache по умолчанию ( cf /etc/apache2/conf.d/charset )
Если этого недостаточно, то вы, вероятно, создали свой исходный файл с набором символов кодировки iso-8859-1 . Вы должны преобразовать его в правильный набор символов:
источник
В моем случае добавить в .htaccess
источник