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


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

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

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

11 124

11 ответов:

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

AddDefaultCharset utf-8

добавьте это в ваш .htaccess:

IndexOptions +Charset=UTF-8

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

AddDefaultCharset UTF-8

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

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

AddDefaultCharset utf-8

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

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

conf/httpd.conf:

AddCharset UTF-8 .utf8

так что если у вас есть файл, которого имена заканчиваются на .html.utf8, apache будет служите странице, как будто она закодирована в УТФ-8 и сбросит правильное директива кодирования символов в заголовок соответственно.

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

In .htaccess добавить эту строку:

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

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

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

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

Я не уверен, что у вас есть доступ к конфигурации Apache (httpd.conf) но вы должны быть в состоянии установить директиву AddDefaultCharset. Смотрите:

http://httpd.apache.org/docs/2.0/mod/core.html

искать mod_mime.модуль c и убедитесь, что установлено следующее:

AddDefaultCharset utf-8 

или эквивалентный Apache 1.X docs (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 файл put:

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

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

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

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

AddDefaultCharset UTF-8

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

AddLanguage ru .html
AddCharset UTF-8 .html

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

IndexOptions Charset=UTF-8 NameWidth=*

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

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

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

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