Я использую хостинговую компанию, и она будет перечислять файлы в каталоге, если файл index.html
не существует, он использует iso-8859-1 в качестве кодировки по умолчанию.
Если сервер Apache, есть ли способ установить UTF-8 вместо этого по умолчанию?
Обновление: Кроме того, я узнал, что на самом деле он использует DOCTYPE HTML 3.2, а затем нет кодировки вообще... поэтому он не устанавливает какую-либо кодировку. Но есть ли способ изменить его на использование UTF-8?
В httpd.conf добавить (или изменить, если он уже существует):
AddDefaultCharset utf-8
Добавьте это в свой .htaccess
:
IndexOptions +Charset=UTF-8
Или, если у вас есть права администратора, вы можете установить его глобально, отредактировав httpd.conf
и добавив:
AddDefaultCharset UTF-8
(Вы можете использовать AddDefaultCharset
в .htaccess
тоже, но он не будет влиять на списки каталогов, созданные Apache таким образом.)
.htaccess
может повлиять на все подкаталоги, вероятно, apache будет искать любой .htaccess
в родительском каталоге вплоть до корневого каталога папки сайта
См. Директива AddDefaultCharset, Директива AddCharset и в этой статье.
AddDefaultCharset utf-8
Но я должен использовать иероглифы сейчас и потом. Раньше я переводил Китайские символы в код Юникода и включить его в документ, используя
&#
взломать. Но это полезно только для страница с несколькими символами.Есть лучший способ сделать это: кодировать информацию кодировки в имя файла и apache соответствующий заголовок кодировки на основе этого. Это возможно благодаря
AddCharset
строк в файле conf, например, ниже:
conf/httpd.conf
:
AddCharset UTF-8 .utf8
Итак, если у вас есть файл, имена заканчиваются на
.html.utf8
, apache будет обслуживать страницу, как если бы она была закодирована в UTF-8 и сбросит директива кодирования символов в соответственно.
В.htaccess добавьте эту строку:
AddCharset utf-8 .html .css .php .txt .js
Это для тех, у кого нет доступа к файлу conf. Это еще одна попытка попробовать, когда другие попытки не удались.
Что касается проблем производительности, связанных с использованием.htaccess, я этого не видел. Мое типичное время загрузки страницы - 150-200 мс с или без.htaccess
Что хорошего в производительности, если ваша страница не отображается правильно. Большинство общих серверов не позволяют пользователю получить доступ к конфигурационному файлу, который является предпочтительным местом для добавления набора символов.
Поместите AddDefaultCharset UTF-8
в /etc/apache2/conf.d/charset
. На самом деле, это уже есть. Вам просто нужно раскомментировать его, удалив предыдущий #
.
/etc/apache2/conf.d/charset
. Это пользовательский файл включения вашего дистрибутива. Как и любой другой файл, который не httpd.conf
.
/etc/apache2/conf-enabled/charset.conf
в моем дистрибутиве (Ubuntu 16.4). Также не работал.
Я не уверен, есть ли у вас доступ к конфигурации Apache (httpd.conf), но вы должны иметь возможность устанавливать директиву AddDefaultCharset. См:
http://httpd.apache.org/docs/2.0/mod/core.html
Найдите модуль mod_mime.c и убедитесь, что установлено следующее:
AddDefaultCharset utf-8
или эквивалентные документы Apache 1.x(http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset).
Однако это работает только тогда, когда "content content-type - text/plain или text/html".
Вы также должны убедиться, что на ваших страницах установлена кодировка. См. Дополнительную информацию:
Для полноты, на Apache2 на Ubuntu, вы найдете кодировку по умолчанию в charset.conf в conf-доступной.
Раскомментируйте строку
AddDefaultCharset UTF-8
Это не проверено, но, вероятно, будет работать.
В вашем файле .htaccess поставьте:
<Files ~ "\.html?$">
Header set Content-Type "text/html; charset=utf-8"
</Files>
Однако для этого потребуются mod_headers на сервере.
<Files>
.
Просто подсказка, если у вас есть длинные имена файлов в utf-8: по умолчанию они будут сокращены до 20 байт, так что может случиться так, что последний символ может быть "разрезан пополам" и, следовательно, непризнан должным образом. Затем вы можете установить следующее:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
настройка предотвратит сокращение ваших имен файлов, делая их правильно отображаемыми и читаемыми.
Как уже упоминались другие пользователи, это должно быть добавлено либо в httpd.conf
, либо apache2.conf
(если у вас есть права администратора) или в .htaccess
(если вы этого не сделаете).
Где все HTML файлы находятся в UTF-8 и не имеют метатег для типа содержимого, я смог установить только необходимый по умолчанию для этих файлов, отправляемый Apache 2.4, добавив обе директивы:
AddLanguage ru .html
AddCharset UTF-8 .html
Просто оставьте пустым: 'default_charset' in WHM :::::: default_charset =''
p.s. - В WHM go --------) Главная "Конфигурация сервиса" Редактор конфигурации PHP ----) нажмите "Расширенный режим" ----) найдите "default_charset" и оставьте поле пустым ---- просто ничего, а не utf8, а не ISO