PHP 的 XML 扩展通过不同的 字符编码 支持 » Unicode 字符集。字符编码有两种类型,源编码 和 目标编码。PHP 对文档的内部表示始终使用 UTF-8
编码。
源编码是在 解析 XML 文档时进行的。在 创建 XML 解析器 时,可以指定源编码(此编码在 XML 解析器生命周期中不能更改)。支持的源编码有 ISO-8859-1
、US-ASCII
和 UTF-8
。前两者是单字节编码,这意味着每个字符都由单个字节表示。 UTF-8
可以用 1 到 4 个字节编码由可变位数(最多 21 位)组成的字符。PHP 使用的默认源编码是 ISO-8859-1
。
目标编码是在 PHP 将数据传递给 XML 处理程序函数时进行的。创建 XML 解析器时,目标编码设置为与源编码相同,但可以在任何时候更改。目标编码将影响字符数据以及标签名称和处理指令目标。
如果 XML 解析器遇到其源编码无法表示的范围之外的字符,它将返回错误。
如果 PHP 在解析的 XML 文档中遇到无法用所选目标编码表示的字符,则问题字符将被“降级”。目前,这意味着此类字符将被问号替换。