Как изменить кодировку по умолчанию на UTF-8 для Apache?

Я использую хостинговую компанию, и она будет перечислять файлы в каталоге, если файл index.html не существует, он использует iso-8859-1 в качестве кодировки по умолчанию.

Если сервер Apache, есть ли способ установить UTF-8 вместо этого по умолчанию?

Обновление: Кроме того, я узнал, что на самом деле он использует DOCTYPE HTML 3.2, а затем нет кодировки вообще... поэтому он не устанавливает какую-либо кодировку. Но есть ли способ изменить его на использование UTF-8?

Ответ 1

В httpd.conf добавить (или изменить, если он уже существует):

AddDefaultCharset utf-8

Ответ 2

Добавьте это в свой .htaccess:

IndexOptions +Charset=UTF-8

Или, если у вас есть права администратора, вы можете установить его глобально, отредактировав httpd.conf и добавив:

AddDefaultCharset UTF-8

(Вы можете использовать AddDefaultCharset в .htaccess тоже, но он не будет влиять на списки каталогов, созданные Apache таким образом.)

Ответ 3

См. Директива AddDefaultCharset, Директива AddCharset и в этой статье.

AddDefaultCharset utf-8

Но я должен использовать иероглифы сейчас и потом. Раньше я переводил Китайские символы в код Юникода и включить его в документ, используя &# взломать. Но это полезно только для страница с несколькими символами.

Есть лучший способ сделать это: кодировать информацию кодировки в имя файла и apache соответствующий заголовок кодировки на основе этого. Это возможно благодаря AddCharset строк в файле conf, например, ниже:

conf/httpd.conf:

AddCharset UTF-8 .utf8

Итак, если у вас есть файл, имена заканчиваются на .html.utf8, apache будет обслуживать страницу, как если бы она была закодирована в UTF-8 и сбросит директива кодирования символов в соответственно.

Ответ 4

Поместите AddDefaultCharset UTF-8 в /etc/apache2/conf.d/charset. На самом деле, это уже есть. Вам просто нужно раскомментировать его, удалив предыдущий #.

Ответ 5

В.htaccess добавьте эту строку:

AddCharset utf-8 .html .css .php .txt .js

Это для тех, у кого нет доступа к файлу conf. Это еще одна попытка попробовать, когда другие попытки не удались.

Что касается проблем производительности, связанных с использованием.htaccess, я этого не видел. Мое типичное время загрузки страницы - 150-200 мс с или без.htaccess

Что хорошего в производительности, если ваша страница не отображается правильно. Большинство общих серверов не позволяют пользователю получить доступ к конфигурационному файлу, который является предпочтительным местом для добавления набора символов.

Ответ 6

Я не уверен, есть ли у вас доступ к конфигурации 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".

Вы также должны убедиться, что на ваших страницах установлена ​​кодировка. См. Дополнительную информацию:

http://www.w3.org/TR/REC-html40/charset.html

Ответ 7

Это не проверено, но, вероятно, будет работать.

В вашем файле .htaccess поставьте:

<Files ~ "\.html?$">  
     Header set Content-Type "text/html; charset=utf-8"
</Files>

Однако для этого потребуются mod_headers на сервере.

Ответ 8

Для полноты, на Apache2 на Ubuntu, вы найдете кодировку по умолчанию в charset.conf в conf-доступной.

Раскомментируйте строку

AddDefaultCharset UTF-8

Ответ 9

Где все HTML файлы находятся в UTF-8 и не имеют метатег для типа содержимого, я смог установить только необходимый по умолчанию для этих файлов, отправляемый Apache 2.4, добавив обе директивы:

AddLanguage ru .html
AddCharset UTF-8 .html

Ответ 10

Просто подсказка, если у вас есть длинные имена файлов в utf-8: по умолчанию они будут сокращены до 20 байт, так что может случиться так, что последний символ может быть "разрезан пополам" и, следовательно, непризнан должным образом. Затем вы можете установить следующее:

IndexOptions Charset=UTF-8 NameWidth=*

NameWidth настройка предотвратит сокращение ваших имен файлов, делая их правильно отображаемыми и читаемыми.

Как уже упоминались другие пользователи, это должно быть добавлено либо в httpd.conf, либо apache2.conf (если у вас есть права администратора) или в .htaccess (если вы этого не сделаете).

Ответ 11

Просто оставьте пустым: 'default_charset' in WHM :::::: default_charset =''

p.s. - В WHM go --------) Главная "Конфигурация сервиса" Редактор конфигурации PHP ----) нажмите "Расширенный режим" ----) найдите "default_charset" и оставьте поле пустым ---- просто ничего, а не utf8, а не ISO