首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ngx_http_charset_module

  • 示例配置
  • 指令
  • 字符集
  • charset_map
  • charset_types
  • override_charset
  • source_charset

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

  • 转换以单向方式执行 - 从服务器到客户端,
  • 只能转换单字节字符集
  • 或UTF-8的单字节字符集。

示例配置

代码语言:javascript
复制
include        conf/koi-win;

charset        windows-1251;
source_charset koi8-r;

指令

句法:

字符集字符集| 关闭;

默认:

字符集关闭;

语境:

http,服务器,位置,如果在指定位置

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

该参数off取消将字符集添加到“Content-Type”响应标题字段。

字符集可以用变量定义:

代码语言:javascript
复制
charset $charset;

在这种情况下,变量的所有可能值至少需要以charset_map,charset或source_charset指令的形式出现在配置中。 对于utf-8,windows-1251和koi8-r字符集,配置文件中包含conf / koi-win,conf / koi-utf和conf / win-utf文件就足够了。 对于其他字符集,只需制作一个虚构的转换表就行,例如:

代码语言:javascript
复制
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;”。

例:

代码语言:javascript
复制
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字符集编码,例如:

代码语言:javascript
复制
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伪指令中指定的字符集不同,则执行转换。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com