<-
Apache HTTP 服务器 2.4 > Apache模块mod_xml2enc

Apache模块mod_xml2enc

描述:对基于libxml2的过滤器模块的增强的字符集/国际化支持
状态:基础
模块标识符:xml2enc_module
源文件:mod_xml2enc.c
兼容性:2.4版及更高版本。作为2.2.x版本的第三方模块可用

摘要

该模块为支持标记的过滤器模块(例如)提供了增强的国际化支持mod_proxy_html。它可以自动检测输入数据的编码,并确保它们由libxml2解析器正确处理,包括在必要时转换为Unicode(UTF-8)。它还可以在标记处理之后将数据转换为选择的编码,并确保 在HTTP Content-Type标头中设置了正确的字符集值。

支持Apache!

主题

指令

错误修正清单

也可以看看

最佳

用法

有两种使用情况:编程为可与mod_xml2enc一起使用的模块,以及不知道该模块的模块:

为mod_xml2enc启用了过滤器模块

mod_proxy_html3.1版及更高版本等模块使用xml2enc_charset可选功能来检索charset参数以传递给libxml2解析器,并且可以使用 xml2enc_filter可选功能将其后处理为另一种编码。将mod_xml2enc与启用的模块一起使用,无需进行任何配置:另一个模块将为您配置mod_xml2enc(尽管您可能仍想使用以下配置指令来自定义它)。

未启用的模块

要将其与未明确为mod_xml2enc启用的基于libxml2的模块一起使用,您必须自己配置过滤器链。因此,要将其与模块mod_foo提供 的过滤器foo一起使用,以改善后者对HTML和XML的i18n支持,可以使用


    FilterProvider iconv    xml2enc Content-Type $text/html
    FilterProvider iconv    xml2enc Content-Type $xml
    FilterProvider markup   foo Content-Type $text/html
    FilterProvider markup   foo Content-Type $xml
    FilterChain     iconv markup
    

mod_foo现在将支持libxml2或apr_xlate / iconv中的一个(或两个)支持的任何字符集。

最佳

编程API

鼓励程序员编写基于libxml2的过滤器模块,使其能够启用mod_xml2enc,以便为用户提供强大的i18n支持,而无需花费很多精力。编程API在mod_xml2enc.h公开,用法示例为 mod_proxy_html

最佳

检测编码

不同于mod_charset_lite,mod_xml2enc设计为处理其编码无法事先知道并因此进行了配置的数据。因此,它使用“嗅探”技术来检测HTTP数据的编码,如下所示:

  1. 如果HTTP Content-Type标头包含 charset参数,则使用该参数。
  2. 如果数据以XML字节顺序标记(BOM)或XML编码声明开头,则使用该格式。
  3. 如果在HTML <META> 元素中声明了编码,则使用该编码。
  4. 如果以上都不匹配,则使用默认值by xml2EncDefault

规则按顺序应用。一旦找到匹配项,将使用该匹配项并停止检测。

最佳

输出编码

libxml2始终在内部使用UTF-8(Unicode),而基于libxml2的过滤器模块将默认输出该内容。mod_xml2enc可以通过API更改输出编码,但是目前尚无法直接配置该编码。

至少从理论上讲,不必更改输出编码,并且不建议这样做,因为不必要的转换会给服务器带来额外的处理负担。

最佳

不支持的编码

如果您正在使用平台上可用的任何转换方法都不支持的编码,则仍可以使用来将它们别名为支持的编码xml2EncAlias

最佳

xml2EncAlias 指令

描述:识别用于编码值的别名
句法:xml2EncAlias charset alias [alias ...]
内容:服务器配置
状态:基础
模块:mod_xml2enc

此服务器范围的指令将一个或多个编码别名为另一种编码。这使得libxml2无法识别的编码可以由libxml2的编码支持在内部使用转换表进行识别的编码处理。这有两个目的:支持libxml2或iconv不能识别的字符集(或名称),以及跳过不需要编码的编码转换。

最佳

xml2EncDefault 指令

描述:设置默认编码,以假定绝对无法自动检测到任何信息
句法:xml2EncDefault name
内容:服务器配置,虚拟主机,目录,.htaccess
状态:基础
模块:mod_xml2enc

如果您正在处理具有已知编码但没有编码信息的数据,则可以设置此默认值以帮助mod_xml2enc正确处理数据。例如,要使用HTTP / 1.0中指定的默认值Latin1(iso-8859-1),请使用:

xml2EncDefault iso-8859-1
最佳

xml2StartParse 指令

描述:建议解析器跳过主要垃圾。
句法:xml2StartParse element [element ...]
内容:服务器配置,虚拟主机,目录,.htaccess
状态:基础
模块:mod_xml2enc

指定标记解析器应从任何指定元素的第一个实例开始。这可以用作变通方法,其中后端断开时会插入导致解析器混乱的前导垃圾(此处为示例)。

永远不要将其用于XML或格式正确的HTML。

可用语言: zh  |  fr 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。