モジュール ngx_http_charset_module
| 設定例 ディレクティブ charset charset_map charset_types override_charset source_charset |
ngx_http_charset_module モジュールは、指定された文字セットをレスポンスヘッダーフィールド "Content-Type" に追加します。さらに、このモジュールは、いくつかの制限付きで、データをある文字セットから別の文字セットに変換できます。
- 変換は一方向(サーバーからクライアント)にのみ実行されます。
- シングルバイト文字セットのみを変換できます
- または、シングルバイト文字セットとUTF-8間の変換が可能です。
設定例
include conf/koi-win; charset windows-1251; source_charset koi8-r;
ディレクティブ
| 構文 |
charset |
|---|---|
| デフォルト |
charset off; |
| コンテキスト |
http, server, location, if in location |
指定された文字セットをレスポンスヘッダーフィールド "Content-Type" に追加します。この文字セットがsource_charset ディレクティブで指定された文字セットと異なる場合、変換が実行されます。
パラメータ off は、"Content-Type" レスポンスヘッダーフィールドへの文字セットの追加をキャンセルします。
文字セットは変数で定義できます。
charset $charset;
この場合、変数のすべての可能な値は、charset_map、charset、またはsource_charset ディレクティブの形式で、設定内に少なくとも1回存在する必要があります。 utf-8、windows-1251、およびkoi8-r 文字セットの場合、ファイル conf/koi-win、conf/koi-utf、および conf/win-utf を設定に含めるだけで十分です。その他の文字セットの場合は、たとえば、以下のように架空の変換テーブルを作成するだけで機能します。
charset_map iso-8859-5 _ { }
さらに、文字セットは "X-Accel-Charset" レスポンスヘッダーフィールドで設定できます。この機能は、proxy_ignore_headers、fastcgi_ignore_headers、uwsgi_ignore_headers、scgi_ignore_headers、および grpc_ignore_headers ディレクティブを使用して無効にすることができます。
| 構文 |
charset_map |
|---|---|
| デフォルト | — |
| コンテキスト |
http |
ある文字セットから別の文字セットへの変換テーブルを記述します。同じデータを使用して逆変換テーブルが構築されます。文字コードは16進数で指定されます。80-FFの範囲にない文字は "?" に置き換えられます。UTF-8から変換する場合、1バイト文字セットにない文字は "&#XXXX;" に置き換えられます。
例
charset_map koi8-r windows-1251 {
C0 FE ; # small yu
C1 E0 ; # small a
C2 E1 ; # small b
C3 F6 ; # small ts
...
}
UTF-8への変換テーブルを記述する場合、UTF-8文字セットのコードは2番目の列に指定する必要があります。たとえば、次のようになります。
charset_map koi8-r utf-8 {
C0 D18E ; # small yu
C1 D0B0 ; # small a
C2 D0B1 ; # small b
C3 D186 ; # small ts
...
}
koi8-r から windows-1251 へ、および koi8-r と windows-1251 から utf-8 への完全な変換テーブルは、配布ファイル conf/koi-win、conf/koi-utf、および conf/win-utf に提供されています。
| 構文 |
charset_types |
|---|---|
| デフォルト |
charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml; |
| コンテキスト |
http, server, location |
このディレクティブはバージョン0.7.9で登場しました。
"text/html"に加えて、指定されたMIMEタイプのレスポンスでモジュール処理を有効にします。特殊な値 "*" は任意のMIMEタイプに一致します(0.8.29)。
バージョン1.5.4までは、"application/javascript" の代わりに "application/x-javascript" がデフォルトのMIMEタイプとして使用されていました。
| 構文 |
override_charset |
|---|---|
| デフォルト |
override_charset off; |
| コンテキスト |
http, server, location, if in location |
プロキシサーバーまたはFastCGI/uwsgi/SCGI/gRPCサーバーから受信したレスポンスに "Content-Type" レスポンスヘッダーフィールドに文字セットが既に含まれている場合に、変換を実行するかどうかを決定します。変換が有効な場合、受信したレスポンスで指定された文字セットがソース文字セットとして使用されます。
サブリクエストでレスポンスを受信した場合、override_charset ディレクティブの設定に関係なく、レスポンスの文字セットからメインリクエストの文字セットへの変換が常に実行されることに注意してください。
| 構文 |
source_charset |
|---|---|
| デフォルト | — |
| コンテキスト |
http, server, location, if in location |
レスポンスのソース文字セットを定義します。この文字セットがcharset ディレクティブで指定された文字セットと異なる場合、変換が実行されます。