回答:
httpd.confに以下を追加します(または、既に存在する場合は変更します)。
AddDefaultCharset utf-8
/etc/apache2/conf-available/charset.conf
これをあなたに追加してください.htaccess
:
IndexOptions +Charset=UTF-8
または、管理者権限がある場合は、以下を編集httpd.conf
して追加することにより、グローバルに設定できます。
AddDefaultCharset UTF-8
(あなたが使用することができますAddDefaultCharset
では.htaccess
、あまりにも、それは仕方というのApache-生成されたディレクトリのリストには影響しません。)
.htaccess
はすべてのサブディレクトリにも影響する可能性があります。おそらくApacheは.htaccess
、ウェブサイトフォルダのルートディレクトリまで親ディレクトリを探します
.htaccess
これがすべてのサーバーで機能する方法です。すべてのサブディレクトリにも影響します。ただし、.htaccess
(AFAIK)を使用して、Apacheで生成されたディレクトリ一覧ページを強制的にUTF-8にすることはできません。
.htaccess
全体の設定を変更することはお勧めできません。サーバー設定がさまざまなファイルに分散されていると、バグの追跡が難しくなります。わずかなパフォーマンスヒットもあります。要求されたファイルごとに、Apacheはディレクトリの.htaccess
ファイルと.htaccess
親ディレクトリのすべてのファイルを読み取る必要があります。.htaccess
したがって、ディレクトリ固有の設定(特定のディレクトリへのアクセスの防止など)または管理者権限を取得する可能性がまったくない場合にのみ使用してください。
参照はAddDefaultCharset指令、AddCharset指令、およびこの記事を。
AddDefaultCharset utf-8
しかし、私は時々漢字を使わなければなりません。以前は、中国語の文字をUnicodeコードに変換し、
&#
ハックを使用してそれをドキュメントに含めていました 。しかし、それは数文字のページにのみ役立ちます。これを行うにはより良い方法があります。ファイル名の文字セット情報をエンコードすると、Apacheはそれに基づいて適切なエンコードヘッダーを出力します。これは
AddCharset
、下の行のようなconfファイルの行のおかげで可能 です。
conf/httpd.conf
:
AddCharset UTF-8 .utf8
したがって、名前がで終わるファイルがある場合
.html.utf8
、ApacheはページがUTF-8でエンコードされているかのようにページを処理し、それに応じて適切な文字エンコーディングディレクティブをヘッダーにダンプします。
に配置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に次の行を追加します。
AddCharset utf-8 .html .css .php .txt .js
これは、サーバーのconfファイルにアクセスできないユーザー向けです。他の試行が失敗したときに試すことは、もう1つだけです。
.htaccessの使用に関するパフォーマンスの問題に関する限り、私はこれを見たことはありません。私の典型的なページの読み込み時間は.htaccessの有無にかかわらず150〜200ミリ秒です
ページが正しくレンダリングされない場合、パフォーマンスはどの程度優れていますか。ほとんどの共有サーバーでは、文字セットを追加するのに適した場所である構成ファイルへのユーザーアクセスを許可していません。
.htaccess
ファイルを使用していない場合は、ここで開始しないでください。これが悪い考えである理由とパフォーマンスおよび管理上の理由があります(tm)
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)。
ただし、これは「応答のコンテンツタイプがtext / plainまたはtext / html」の場合にのみ機能します。
また、ページに文字セットが設定されていることも確認する必要があります。詳細はこちらをご覧ください:
これはテストされていませんが、おそらく機能します。
.htaccessファイルに次のように記述します。
<Files ~ "\.html?$">
Header set Content-Type "text/html; charset=utf-8"
</Files>
ただし、これにはサーバーにmod_headersが必要です。
<Files>
タグで囲む必要もありませんでした。