L'extension XML de PHP supporte les caractères
» Unicode grâce à
différents codages. Il y a deux types de codages de
caractères : le codage à la source et le
codage à la cible. PHP utilise le
UTF-8 comme représentation interne.
L'encodage à la source est effectué lors de
l'analyse du fichier par XML.
Lors de la création
d'un analyseur XML), un type de codage à la
source peut être spécifié (et il ne pourra plus
être modifié jusqu'à la destruction de
l'analyseur). Les codages supportés sont :
ISO-8859-1, US-ASCII et
UTF-8. Les deux derniers sont des codages
à un seul octet, c'est-à-dire que les caractères
sont représentés sur un seul octet. UTF-8
peut représenter des caractères composés par un
nombre variable de bits (jusqu'à 21), allant de 1 à
quatre octets. Le codage à la source par défaut utilisé par PHP est
ISO-8859-1.
Le codage à la cible est effectué lorsque PHP transfère les données aux gestionnaires XML. Lorsqu'un analyseur est créé, le codage à la cible est spécifié de la même façon que le codage à la source, mais il peut être modifié à tout moment. Le codage à la cible affectera les données de caractères, tout comme les noms des balises et les cibles des instructions de traitement.
Si l'analyseur XML rencontre des caractères en dehors de la plage que son encodage à la source est capable de représenter, il retournera une erreur.
Si PHP rencontre des caractères dans le document XML analysé qu'il ne peut pas représenter dans le codage à la cible choisi, les caractères problématiques seront « déclassés ». Actuellement, cela signifie que ces caractères sont remplacés par un point d'interrogation.