On this page
Apache 模块 mod_charset_lite
Description: | 指定字符集转换或重新编码 |
---|---|
Status: | Extension |
Module Identifier: | charset_lite_module |
Source File: | mod_charset_lite.c |
Summary
mod_charset_lite允许服务器在将响应发送给 Client 端之前更改响应的字符集。在 EBCDIC 环境中,Apache 始终将 HTTP 协议内容(例如,响应 Headers)从 Apache 进程语言环境的代码页转换为 ISO-8859-1,而不是转换响应的主体。在任何环境中,都可以使用mod_charset_lite来指定应翻译响应正文。例如,如果文件存储在 EBCDIC 中,则mod_charset_lite可以在将文件发送到 Client 端之前将它们转换为 ISO-8859-1.
该模块提供了由俄语 Apache 及其关联的mod_charset
实现的一小部分配置机制。
Common Problems
无效的字符集名称
CharsetSourceEnc和CharsetDefault的字符集名称参数必须被mod_charset_lite部署在系统上的APR使用的转换机制所接受。这些字符集名称不是标准化的,通常与 http Headers 中使用的相应值不同。当前,APR 只能使用 iconv(3),因此您可以使用 iconv(1)程序轻松测试字符集名称,如下所示:
iconv -f charsetsourceenc-value -t charsetdefault-value
内容字符集和翻译规则不匹配
如果翻译规则对内容没有意义,则翻译可能会以各种方式失败,包括:
转换机制可能返回错误的返回码,并且连接将被中止。
当转换机制不能转换 Importing 缓冲器时,它可以在输出缓冲器中静默地放置特殊字符(例如,问号)。
CharsetDefault Directive
Description: | 字符集翻译成 |
---|---|
Syntax: | CharsetDefault charset |
Context: | 服务器配置,虚拟主机,目录,.htaccess |
Override: | FileInfo |
Status: | Extension |
Module: | mod_charset_lite |
CharsetDefault
指令指定了应将关联容器中的内容转换为的字符集。
charset 参数的值必须被APR中的字符集支持接受为有效的字符集名称。通常,这意味着它必须由 iconv 支持。
Example
<Directory "/export/home/trawick/apacheinst/htdocs/convert">
CharsetSourceEnc UTF-16BE
CharsetDefault ISO-8859-1
</Directory>
Note
为CharsetSourceEnc和CharsetDefault指定相同的字符集将禁用翻译。字符集不必与响应的字符集匹配,但是它必须是系统上的有效字符集。
CharsetOptions Directive
Description: | 配置字符集转换行为 |
---|---|
Syntax: | CharsetOptions option [option] ... |
Default: | CharsetOptions ImplicitAdd |
Context: | 服务器配置,虚拟主机,目录,.htaccess |
Override: | FileInfo |
Status: | Extension |
Module: | mod_charset_lite |
CharsetOptions
指令可配置mod_charset_lite的某些行为。选项可以是以下之一
ImplicitAdd | NoImplicitAdd
ImplicitAdd
关键字指定当配置指定应翻译内容的字符集时,mod_charset_lite应隐式插入其过滤器。如果使用AddOutputFilter指令显式配置了过滤器链,则应指定NoImplicitAdd
,以便mod_charset_lite不添加其过滤器。
TranslateAllMimeTypes | NoTranslateAllMimeTypes
- 通常,mod_charset_lite将仅对可能的模仿类型的一小部分执行翻译。当为给定的配置节指定
TranslateAllMimeTypes
关键字时,执行转换时无需考虑 mimetype。
- 通常,mod_charset_lite将仅对可能的模仿类型的一小部分执行翻译。当为给定的配置节指定
CharsetSourceEnc Directive
Description: | 文件的源字符集 |
---|---|
Syntax: | CharsetSourceEnc charset |
Context: | 服务器配置,虚拟主机,目录,.htaccess |
Override: | FileInfo |
Status: | Extension |
Module: | mod_charset_lite |
CharsetSourceEnc
伪指令指定关联容器中文件的源字符集。
charset 参数的值必须被APR中的字符集支持接受为有效的字符集名称。通常,这意味着它必须由 iconv 支持。
Example
<Directory "/export/home/trawick/apacheinst/htdocs/convert">
CharsetSourceEnc UTF-16BE
CharsetDefault ISO-8859-1
</Directory>
此示例中的字符集名称与 Solaris 8 中的 iconv 转换支持一起使用。
Note
为CharsetSourceEnc和CharsetDefault指定相同的字符集将禁用翻译。字符集不必与响应的字符集匹配,但是它必须是系统上的有效字符集。