попробуйте этот код!
<?php
$handle = fopen("./test.txt", "r");
$serachEncoding = 'CP1251';
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$buffer = iconv("UTF8", "CP1251//TRANSLIT//IGNORE", $buffer);
$charset = mb_detect_encoding($buffer, [$serachEncoding]);
echo $charset;
}
fclose($handle);
, если $ serachEncoding = UTF8, файл будет считываться построчно и будет выводить свою кодировку в каждой строке
, если будет выведено $ serachEncoding = CP1251одна строка и ее кодировка
Так почему?