ngx_http_charset_module
ngx_http_charset_module模块
- 示例配置
- 指令
- 字符集
- 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;
指令
句法: | 字符集字符集| 关闭; |
---|---|
默认: | 字符集关闭; |
语境: | http,服务器,位置,如果在指定位置 |
将指定的字符集添加到“Content-Type”响应标题字段。如果此字符集与source_charset伪指令中指定的字符集不同,则执行转换。
该参数off
取消将字符集添加到“Content-Type”响应标题字段。
字符集可以用变量定义:
charset $charset;
在这种情况下,变量的所有可能值至少需要以charset_map,charset或source_charset指令的形式出现在配置中。 对于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指令禁用此功能。
句法: | charset_map charset1 charset2 {...} |
---|---|
默认: | — |
语境: | HTTP |
描述从一个字符集到另一个字符集的转换表。使用相同的数据构建反向转换表。字符代码以十六进制给出。缺少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
...
}
分发文件conf / koi-win,conf / koi-utf和conf / win-utf中提供了从koi8-r到windows-1251以及从koi8-r和windows-1251到utf-8的完整转换表。
句法: | charset_types mime-type ...; |
---|---|
默认: | charset_types text / html text / xml text / plain text / vnd.wap.wml application / javascript application / rss + xml; |
语境: | http,服务器,位置 |
除了“ text/html
” 之外,还允许模块处理响应指定的MIME类型。特殊值“ *
”匹配任何MIME类型(0.8.29)。
在版本1.5.4之前,“
application/x-javascript
”被用作默认的MIME类型而不是“application/javascript
”。
句法: | override_charset 开启|关闭; |
---|---|
默认: | override_charset关闭; |
语境: | http,服务器,位置,如果在指定位置 |
确定在答案已在“Content-Type”响应头字段中携带字符集时,是否应对从代理或FastCGI / uwsgi / SCGI服务器收到的答案执行转换。如果启用转换,则将接收到的响应中指定的字符集用作源字符集。
应该注意的是,如果在子请求中接收到响应,则始终执行从响应字符集到主要请求字符集的转换,而不管
override_charset
指令设置如何。
句法: | source_charset字符集; |
---|---|
默认: | — |
语境: | http,服务器,位置,如果在位置 |
定义响应的源字符集。如果此字符集与charset伪指令中指定的字符集不同,则执行转换。