A Extensão XML do PHP suporta o conjunto de caracteres » Unicode definido por
diferentes codificações de caracteres
diferentes. Há dois tipos de codificação de caracteres, codificação
da fonte e codificação do destino.
A apresentação interna do PHP do documento é sempre codificada
com UTF-8
.
Codificação na fonte é feita quando um documento XML é analisado. Ao criar um analisador
XML, uma codificação na fonte pode ser especificada (esta codificação
não poderá ser alterada mais tarde durante a atividade do analisador XML). As
codificações na fonte suportadas são ISO-8859-1
,
US-ASCII
e UTF-8
. As duas
primeiras são codificações de um byte, o que significa que cada
caractere é representado por um único byte.
UTF-8
pode codificar caracteres compostos por
um número variável de bits (até 21) em um a quatro bytes. A
codificação na fonte padrão usada pelo PHP é
ISO-8859-1
.
Codificação no destino é feita quando o PHP passa dados para as funções do analisador XML. Quando um analisador XML é criado, a codificação no destino é definido como a mesma da fonte, mas isto pode ser alterado a qualquer momento. A codificação no destino afetará dados de caracteres e também nomes de etiquetas e alvos de instrução de processamento.
Se o analisador XML encontrar caracteres de fora da faixa na qual sua codificação na fonte seja capaz de representar, ele retornará um erro.
Se o PHP encontrar caracteres no documento XML analisado que não possam ser representados na codificação de destino escolhida, os caracteres com problema serão "rebaixados". Atualmente, isto significa que tais caracteres serão substituídos por um sinal de interrogação.