DOMDocument
PHPのsaveXML()
およびsaveHTML()
メソッドを使用すると、「ダンプ」動作が異なることに気付きました。著作権記号 (©) をダンプする簡単な例を次に示します。
<?
$domDoc = new DOMDocument();
$domDoc->loadHTML("©");
echo $domDoc->saveHTML();
echo $domDoc->saveXML();
echo $domDoc->saveXML($domDoc);
?>
3 つのダンプにより、次の 3 つの異なる出力が生成されます。
1 つ目は文字列を出力します©
2 つ目は文字エンティティを出力します©
3 つ目は著作権記号 ( U+00A9
)の UTF8 2 バイト コードを出力します
出力が異なるのはなぜですか?どの方法が使用されるかを予測可能に制御する方法はありますか?