Charset#
该模块将指定的字符集添加到 Content-Type 响应头字段。此外,该模块可以在某些限制条件下将数据从一种字符集转换为另一种字符集:
转换是单向进行的——从服务器到客户端,
只能转换单字节字符集,
或单字节字符集与 UTF-8 之间的转换。
当 从源代码构建 时,该模块默认会被构建;可以通过
构建选项 --without-http_charset_module 禁用它。
在来自 我们的软件仓库 的包和镜像中,该模块已包含在
构建中。 将指定的字符集添加到 参数 字符集可以通过变量定义: 在这种情况下,变量的所有可能值必须至少在配置中以 charset_map、charset 或 source_charset 指令的形式出现一次。对于 此外,可以在 描述从一种字符集到另一种字符集的转换表。使用相同的数据构建反向转换表。字符编码以十六进制给出。在范围 80-FF 中缺失的字符用 "?" 替代。从 UTF-8 转换时,在单字节字符集中缺失的字符用 "&#XXXX;" 替代。 示例: 在描述到 UTF-8 的转换表时,UTF-8 字符集的代码应在第二列给出,例如: 从 默认 http, server, location 使模块在处理指定 MIME 类型的响应时生效,除了 确定是否应对从代理或 FastCGI/uwsgi/SCGI/gRPC 服务器接收到的响应进行转换,当这些响应已在 备注 如果在子请求中收到响应,则始终会将响应字符集转换为主请求字符集,而不管 override_charset 指令的设置。 定义响应的源字符集。如果该字符集与 charset 指令中指定的字符集不同,则会执行转换。配置示例#
include conf/koi-win;
charset windows-1251;
source_charset koi8-r;
指令#
charset#
Content-Type 响应头字段。如果该字符集与 source_charset 指令中指定的字符集不同,则会执行转换。off 取消将字符集添加到 Content-Type 响应头字段。charset $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 和 grpc_ignore_headers 指令禁用此功能。charset_map#
charset_map koi8-r windows-1251 {
C0 FE ; # 小 ю
C1 E0 ; # 小 а
C2 E1 ; # 小 б
C3 F6 ; # 小 ц
}
charset_map koi8-r utf-8 {
C0 D18E ; # 小 ю
C1 D0B0 ; # 小 а
C2 D0B1 ; # 小 б
C3 D186 ; # 小 ц
}
koi8-r 到 windows-1251,以及从 koi8-r 和 windows-1251 到 utf-8 的完整转换表在分发文件 conf/koi-win、conf/koi-utf 和 conf/win-utf 中提供。charset_types#
charset_types mime-type ...;charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml;text/html 之外。特殊值 * 匹配任何 MIME 类型。override_charset#
Content-Type 响应头字段中携带字符集时。如果启用转换,则使用接收到的响应中指定的字符集作为源字符集。source_charset#