因此,我正在編寫應該解析不同網站的代碼,其中一些使用windows-1250
編碼,其中一些使用'utf-8'。我對這些網站沒有任何影響,你可能會猜測那些'windows-1250'的網頁讓我很頭疼。所以,這裏是我使用的代碼:DOMDocument和windows-1250編碼
$doc = new DOMDocument();
@$doc->loadHTML($response);
$xpath = new DOMXpath($doc);
$anchors = $xpath->query("//a[@href]");
foreach($anchors as $anchor) {
$href = $anchor->getAttribute("href");
$anchor->setAttribute("href", 'http://example.com/');
}
$response = $xpath->document->saveHTML();
,這裏是在瀏覽器中的輸出,當我嘗試運行此腳本:
Warning: DOMDocument::saveHTML(): output conversion failed due to conv error, bytes 0x9A 0x61 0x72 0x6B
那麼,有沒有一種方法來處理這個誤差'windows-1250'編碼,這將工作utf-8也?我嘗試使用utf_encode
與$response
並通過,但國際字符混亂。
你確定它的'1250'?不是'1251/1252'?無論如何,你可以重現這個問題 – Ghost
好吧,這是直接從頁面 我不確定爲什麼發生這種情況,因爲一些頁面工作真的很好,這種編碼,並在一些我得到這個錯誤.. – Zed
你有一個活的網站,可以檢查,所以我們可以看到最新的問題 – Ghost