Простая проблема кодирования символов html dom

эй, ребята, я использую простой html dom для извлечения контента с другого сайта, но дело в том, что проблема с кодировкой символов связана с материалом, полученным с помощью простого html dom. Персонажи появляются как маленький бриллиант с вопросительным знаком внутри.

Проблема с кодировкой символов возникает только при извлеченном содержимом, и весь текст на моем сайте отображается в порядке.

Если кто-то может помочь, это будет здорово.

Related of "Простая проблема кодирования символов html dom"

Попробуйте использовать iconv чтобы преобразовать кодировку скреблированного текста в кодировку, которую вы используете на своей странице.

Подпись:

 string iconv ( string $in_charset , string $out_charset , string $str ) 

Пример:

 echo iconv("ISO-8859-1", "UTF-8", $text); 

Перейдите на сайт и проверьте свою кодировку, просмотрев информацию о странице.

 $text = iconv(mb_detect_encoding($text), "UTF-8//TRANSLIT//IGNORE", $text); 

У меня тоже была эта проблема, но проблема была не в кодировке. Это сжатие gzip, которое не обрабатывает простой html dom. Вот мое решение. Используйте функцию file_get_html2 вместо file_get_html .

 function curl($url){ $headers[] = "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"; $headers[] = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; $headers[] = "Accept-Language:en-us,en;q=0.5"; $headers[] = "Accept-Encoding:gzip,deflate"; $headers[] = "Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $headers[] = "Keep-Alive:115"; $headers[] = "Connection:keep-alive"; $headers[] = "Cache-Control:max-age=0"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_ENCODING, "gzip"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $data = curl_exec($curl); curl_close($curl); return $data; } function file_get_html2($url){ return str_get_html(curl($url)); }