$string = file_get_contents('http://example.com');
if ('UTF-8' === mb_detect_encoding($string)) {
$dom = new DOMDocument();
// hack to preserve UTF-8 characters
$dom->loadHTML('<?xml encoding="UTF-8">' . $string);
$dom->preserveWhiteSpace = false;
$dom->encoding = 'UTF-8';
$body = $dom->getElementsByTagName('body');
echo htmlspecialchars($body->item(0)->nodeValue);
}
Zmienia wszystkie znaki UTF-8 do ¾, ¤ i innych śmieci. Czy istnieje inny sposób zachowania znaków UTF-8?Dlaczego DOM zmienia kodowanie?
Nie wysyłaj odpowiedzi mówi mi, aby upewnić się, jestem wyprowadzanie go jako UTF-8, zrobiłem pewien jestem.
góry dzięki :)
Skąd dane ('$ string') pochodzi? –
I zostały zaktualizowane moje pytanie :) –
można podać link do adresu URL, który pobrać za pomocą file_get_contents()? Jak już wspomniałem w drugim pytaniu, podejrzewam, że otrzymujesz ISO-8859-1 lub inne dane, które * mają *, aby zostać zniekształcone, gdy wynik jest w UTF-8. Nie polegałbym na mb_detect_encoding(). –