我這裏有一些問題PHP DOM文檔,Unicode的問題
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
echo $dom->saveHTML();
輸出:
< DOCTYPE HTML PUBLIC " - // W3C // DTD HTML 4.0過渡// EN " " HTTP ://www.w3.org/TR/REC-html40/loose.dtd " > <html> <body> <h1> & ldquo; </H1 > < /身體> </HTML >
好吧,這正常工作。 但是,如果我想提取的節點這樣
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
$h1 = $dom->getElementsByTagName('h1');
echo $dom->saveHTML($h1->item(0));
它的輸出無法識別的文本。
<H1>“</H1 >
有誰知道如何解決這個問題?
所有這些DOM函數都會返回UTF-8編碼的字符串,更好地檢查手冊。沒有什麼可解決的,只是爲了正確顯示,例如通過正確配置您的響應標題或使用瀏覽器中的菜單來告訴您的瀏覽器,如果您不知道如何自動告知瀏覽器,您可以指定字符集編碼。見http://www.webstandards.org/learn/articles/askw3c/dec2002/ – hakre 2012-02-23 14:37:04