A Extensão XML do PHP suporta o caracter » Unicode definido por
character encodings (codificação de caracteres)
diferentes. Há dois tipos de codificação de caracteres, source
encoding e target encoding.
A apresentação interna do PHP do documento é sempre codificada
com UTF-8
.
Source encoding é feita quando um documento XML é analisado. Em criando um analisador
XML, um source encoding pode ser especificado (Esta codificação
não poderá ser mudada após o tempo de vida do analisador XML). As
codificações suportadas são ISO-8859-1
,
US-ASCII
e UTF-8
. O segundo
são codificações single-byte, que significa que cada caractere é
representado por um byte simples.
UTF-8
pode codificar caracteres compostos por
um número de bits variável (acima de 21) em um de seus 4 bytes. O
source encoding padrão utilizado pelo PHP é
ISO-8859-1
.
Target encoding é feito quando o PHP passa dados para as funções do analisador XML. Quando um analisador XML é criado, o target encoding é definido igual ao source encoding, mas este pode ser mudado em qualquer ponto. O target encoding afetará dados de caracter tão bem como nome de tags e processando alvos da instrução.
Se o analisador XML encontra caracteres de fora da linha que seu source encoding é capaz de detalhar, ele retornará um erro.
Se PHP encontra caracteres no documento XML analisado que não podem ser detalhados selecionados com target encoding, os caracteres com problema serão "demoted". Atualmente, isto significa que tais caracteres serão substituidos por um sinal de interrogação.