CURL перекодировка ответа

472
11 августа 2017, 00:30

С помощью curl получаю данные со стороннего сайта, изначально его кодировка не известна. В случае если кодировка windows-1251 получаю не читаемый сайт (испорчена кодировка), мне нужно отображать utf-8.

iconv("windows-1251", "UTF-8", $post); - помогает, НО если изначально кодировка и так utf-8 сайт я не получаю - белая страница.

curl_setopt($rCurl, CURLOPT_ENCODING, 'gzip,deflate'); - не помогло вообще.

Нашел как мне кажется решение моей проблемы:

<?php 
$tab = array("UTF-8", "ASCII", "Windows-1251", "Windows-1252", "ISO-8859-15", "ISO-8859-1", "ISO-8859-6", "CP1256"); 
$chain = ""; 
foreach ($tab as $i) 
{ 
    foreach ($tab as $j) 
    { 
        $chain .= " $i$j ".iconv($i, $j, "$my_string"); 
    } 
} 
echo $chain; 
?>

Как я понял, данная функция должна определить изначальную кодировку и потом, при необходимости изменить ее, но совладать с этим кодом я не смог.

Я не понял, где нужно задать нужную мне UTF-8 кодировку.

Мне кажется, что из строки $tab = array нужно удалить UTF-8, так как именно эта кодировка мне и нужна.

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

Пробовал еще так сделать:

function convert_utf8( $post ) { 
    if ( strlen(utf8_decode($post)) == strlen($post) ) {   
        // $string is not UTF-8
        return iconv("windows-1251", "UTF-8", $post);
    } else {
        // already UTF-8
        return $post;
    }
}
echo $post;

не помогло.

Спасибо!

READ ALSO
Как вытащить правильно массив

Как вытащить правильно массив

Подскажите пожалуйста, как извлечь данные через foreach? на выходе получается неподходящий для этого объектНужно, чтобы можно было сделать key => value,...

446
OpenCart отказывается устанавливать модули

OpenCart отказывается устанавливать модули

Доброе утро, перепробовал уже 2 хостинга, множество сборок опенкарта 23, при установке модулей возникает вот такая проблема: http://imgur

316
Как убрать редирект при неверном вводе email в комментариях wp

Как убрать редирект при неверном вводе email в комментариях wp

При неверном вводе мыла, имени или пустом комменте происходит редирект на /wp-comments-postphp где окно с выводом ошибки

311
После переноса на другой сервер , получаю следующую ошибку и у меня нет файла new_hard.tpl

После переноса на другой сервер , получаю следующую ошибку и у меня нет файла new_hard.tpl

Сайт сделан на OpencartВыдает следующее сообщение об ошибке:

305