字符编码

PHP 的 XML 扩展通过几种不同的字符编码支持» Unicode 字符集。 有两类字符编码, 原始编码目标编码. 在PHP的内部展现中,文档始终是使用UTF-8编码。

当 XML 被 解析 后,原始编码就完成了。 在创建 XML 解析器时, 可以指定原始编码(在XML 解析器此后的生命周期里,不能修改此编码)。 被支持的原始编码有 ISO-8859-1, US-ASCIIUTF-8. 前两种是单字节编码, 即每一个字符表现为一个字节。 UTF-8 可将字符编码为一串不定数量(最高21)的位(bit), 排列成1到4个字节。 PHP 中使用的默认原始编码是ISO-8859-1.

当 PHP 将数据传给 XML 处理函数时,目标编码就完成了。 在创建 XML 处理器时,目标编码被设定为与原始编码相同,但可任意修改。 目标编码会影响字符数据及标签名,与处理指令目标。

如 XML 解析器遇到原始编码所能表示的范围之外的字符时,会返回一个错误。

如 PHP 遇到在被解析的 XML 文档中不能用所指定的目标编码表示的字符时, 这个问题字符会被“降级”。通常来说,就是那些字符会被替换成问号(?)。