字符編碼

PHP 的 XML 擴(kuò)展通過幾種不同的字符編碼支持? Unicode 字符集。 有兩類字符編碼, 原始編碼目標(biāo)編碼. 在PHP的內(nèi)部展現(xiàn)中,文檔始終是使用UTF-8編碼。

當(dāng) XML 被 解析 后,原始編碼就完成了。 在創(chuàng)建 XML 解析器時(shí), 可以指定原始編碼(在XML 解析器此后的生命周期里,不能修改此編碼)。 被支持的原始編碼有 ISO-8859-1, US-ASCIIUTF-8. 前兩種是單字節(jié)編碼, 即每一個(gè)字符表現(xiàn)為一個(gè)字節(jié)。 UTF-8 可將字符編碼為一串不定數(shù)量(最高21)的位(bit), 排列成1到4個(gè)字節(jié)。 PHP 中使用的默認(rèn)原始編碼是ISO-8859-1.

當(dāng) PHP 將數(shù)據(jù)傳給 XML 處理函數(shù)時(shí),目標(biāo)編碼就完成了。 在創(chuàng)建 XML 處理器時(shí),目標(biāo)編碼被設(shè)定為與原始編碼相同,但可任意修改。 目標(biāo)編碼會(huì)影響字符數(shù)據(jù)及標(biāo)簽名,與處理指令目標(biāo)。

如 XML 解析器遇到原始編碼所能表示的范圍之外的字符時(shí),會(huì)返回一個(gè)錯(cuò)誤。

如 PHP 遇到在被解析的 XML 文檔中不能用所指定的目標(biāo)編碼表示的字符時(shí), 這個(gè)問題字符會(huì)被“降級(jí)”。通常來說,就是那些字符會(huì)被替換成問號(hào)(?)。