PHPのXML拡張モジュールは、異なった文字エンコーディング
  を通じて» Unicode
  文字セットをサポートします。ソースエンコーディング
  およびターゲットエンコーディング
  という2種類の文字エンコーディングがあります。
  PHP におけるドキュメントの内部表現は、常に
  UTF-8でエンコードされます。
 
  ソースエンコーディングは、XMLドキュメントが
  構文解析された際に行わ
  れます。XML パーサの
  作成を行う際に、ソースエンコードを指定することができます。
  (このエンコーディングは、その XML パーサーが存在する間、後で変更す
  ることはできません)サポートされるソースエンコーディングは、
  ISO-8859-1, US-ASCII ,
  UTF-8 です。前の二つは、シングルバイトエンコー
  ディングです。これは、各文字がシングルバイトで表現されることを意
  味します。UTF-8 は、1から4バイトの可変ビット
  数(最大21ビット)で構成された文字をエンコードすることが可能です。
  PHP で用いられるデフォルトのソースエンコーディングは、
  ISO-8859-1です。
 
ターゲットエンコーディングは、PHPがデータをXMLハンドラ関数に 渡す時に行われます。あるXMLパーサが作成された際、ターゲットエン コーディングは、ソースエンコーディングと同様に設定されます。 しかし、これは、いつでも変更可能です。ターゲットエンコーディング は、タグ名と同様に文字データに作用し、命令を処理します。
XML パーサがソースエンコーディングが表現できる範囲の外側の文字に 出会った場合、エラーが返されます。
解釈するXMLドキュメントにおいてPHPが文字に出会った際に、選択した ターゲットエンコーディングで表現できない文字に出会った場合、問題 の文字は "降格" されます。現在、このことはこのような文字が疑問符 で置換されることを意味します。
