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-ASCII
和 UTF-8
.
前兩種是單字節(jié)編碼, 即每一個字符表現(xiàn)為一個字節(jié)。
UTF-8
可將字符編碼為一串不定數(shù)量(最高21)的位(bit), 排列成1到4個字節(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)編碼會影響字符數(shù)據(jù)及標(biāo)簽名,與處理指令目標(biāo)。
如 XML 解析器遇到原始編碼所能表示的范圍之外的字符時(shí),會返回一個錯誤。
如 PHP 遇到在被解析的 XML 文檔中不能用所指定的目標(biāo)編碼表示的字符時(shí), 這個問題字符會被“降級”。通常來說,就是那些字符會被替換成問號(?)。