模块ngx_http_charset_module

Example Configuration
Directives
charset
charset_map
charset_types
override_charset
source_charset

ngx_http_charset_module模块将指定的字符集添加到“Content-Type”响应头字段中。此外,该模块可以将数据从一个字符集转换为另一个,具有一些限制:

Example Configuration

include        conf/koi-win;

charset        windows-1251;
source_charset koi8-r;

Directives

句法: charset charset | 关 T4>; T0>
默认:
charset off;
语境: http服务器位置如果位置

将指定的字符集添加到“Content-Type”响应头域。如果此字符集与source_charset指令中指定的字符集不同,则执行转换。

参数off取消了向“Content-Type”响应头字段添加字符集。

可以使用变量定义字符集:

charset $charset;

在这种情况下,变量的所有可能值需要以charset_mapcharsetsource_charset 指令。对于utf-8windows-1251koi8-r字符集,只要包含文件conf / koi- winconf / koi-utfconf / win-utf进入配置。对于其他字符集,只需制作虚构转换表即可,例如:

charset_map iso-8859-5 _ { }

另外,可以在“X-Accel-Charset”响应头字段中设置字符集。可以使用proxy_ignore_headersfastcgi_ignore_headersuwsgi_ignore_headersscgi_ignore_headers指令禁用此功能。

句法: charset_map charset1 charset2 {...}
默认: -
语境: HTTP T0>

将转换表从一个字符集描述到另一个字符集。使用相同的数据构建反向转换表。字符代码以十六进制形式给出。80-FF范围内的缺少字符将被替换为“”。当从UTF-8转换时,一个字节字符集中丢失的字符将被替换为“& #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字符集的代码,例如:

charset_map koi8-r utf-8 {
    C0 D18E ; # small yu
    C1 D0B0 ; # small a
    C2 D0B1 ; # small b
    C3 D186 ; # small ts
    ...
}

Full conversion tables from koi8-r to windows-1251, and from koi8-r and windows-1251 to utf-8 are provided in the distribution files conf/koi-win, conf/koi-utf, and conf/win-utf.

句法: charset_types mime-type ...;
默认:
charset_types text/html text/xml text/plain text/vnd.wap.wml
application/javascript application/rss+xml;
语境: http服务器位置

该指令出现在0.7.9版本中。

除了“text / html”之外,还可以使用指定的MIME类型进行响应中的模块处理。特殊值“*”匹配任何MIME类型(0.8.29)。

直到版本1.5.4,“application / x-javascript”被用作默认的MIME类型,而不是“application / javascript”。

句法: override_charset on | 关 T3>; T0>
默认:
override_charset off;
语境: http服务器位置如果位置

确定当答案已经在“Content-Type”响应标题字段中携带字符集时,是否应对从代理或FastCGI / uwsgi / SCGI服务器接收的答案执行转换。如果启用转换,则会将接收到的响应中指定的字符集用作源字符集。

应该注意的是,如果在子请求中接收到响应,则始终执行从响应字符集到主请求字符集的转换,而不管override_charset指令设置如何。

句法: source_charset charset
默认: -
语境: http服务器位置如果位置

定义响应的源字符集。如果此字符集与charset指令中指定的字符集不同,则执行转换。