模块ngx_http_charset_module
Example Configuration Directives charset charset_map charset_types override_charset source_charset |
ngx_http_charset_module
模块将指定的字符集添加到“Content-Type”响应头字段中。此外,该模块可以将数据从一个字符集转换为另一个,具有一些限制:
- 转换是以一种方式执行的 - 从服务器到客户端,
- 只能转换单字节字符集
- 或来自/来自UTF-8的单字节字符集。
Example Configuration
include conf/koi-win; charset windows-1251; source_charset koi8-r;
Directives
句法: | charset |
---|---|
默认: |
charset off; |
语境: | 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 |
---|---|
默认: | - |
语境: | 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 |
---|---|
默认: |
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 |
---|---|
默认: |
override_charset off; |
语境: | http ,服务器 ,位置 ,如果位置 |
确定当答案已经在“Content-Type”响应标题字段中携带字符集时,是否应对从代理或FastCGI / uwsgi / SCGI服务器接收的答案执行转换。如果启用转换,则会将接收到的响应中指定的字符集用作源字符集。
应该注意的是,如果在子请求中接收到响应,则始终执行从响应字符集到主请求字符集的转换,而不管override_charset
指令设置如何。
句法: | source_charset |
---|---|
默认: | - |
语境: | http ,服务器 ,位置 ,如果位置 |
定义响应的源字符集。如果此字符集与charset指令中指定的字符集不同,则执行转换。