PHP 的 XML 擴充功能透過不同的字元編碼支援 » Unicode 字元集。字元編碼有兩種類型,來源編碼和目標編碼。PHP 文件的內部表示方式一律使用 UTF-8
編碼。
XML 文件在解析時會進行來源編碼。在建立 XML 解析器時,可以指定來源編碼(此編碼在 XML 解析器的生命週期中之後無法更改)。支援的來源編碼為 ISO-8859-1
、US-ASCII
和 UTF-8
。前兩者是單位元組編碼,這表示每個字元由單個位元組表示。UTF-8
可以將由可變位數(最多 21 位)組成的字元編碼為一到四個位元組。PHP 使用的預設來源編碼為 ISO-8859-1
。
當 PHP 將資料傳遞給 XML 處理函式時,會進行目標編碼。建立 XML 解析器時,目標編碼會設定為與來源編碼相同,但這可以隨時更改。目標編碼會影響字元資料以及標籤名稱和處理指令目標。
如果 XML 解析器遇到其來源編碼無法表示範圍之外的字元,它將返回錯誤。
如果 PHP 在已解析的 XML 文件中遇到無法以所選目標編碼表示的字元,則問題字元將被「降級」。目前,這表示此類字元將被問號取代。