deepslam
Новичок
Как определить в какой кодировке файл?
Всем привет, поиск использовал, но ничего дельного не нашел.
Суть такова - читаю удаленный файл, но если там кодировка другая, то получаются крякозябры.
Про iconv знаю, но как определить исходную кодировку?
Как вариант использовать что то типа этого совета:
Всем привет, поиск использовал, но ничего дельного не нашел.
Суть такова - читаю удаленный файл, но если там кодировка другая, то получаются крякозябры.
Про iconv знаю, но как определить исходную кодировку?
Как вариант использовать что то типа этого совета:
Но думаю существует более простое решение?В кодировке Windows-1251 русские символы имеют
номера 192-255, в кодировке DOS -- 128-175 и 224-241. Соответственно,
можно попробовать что-то вроде:
$text = file_get_contents('file.txt')
$length = strlen($text);
$dos = 0;
$windows = 0;
for ($i=0; $i<$length; $i++) {
$n = ord($text{$i});
if ($n >= 192) {
$windows++;
}
if ((($n >= 128) and ($n <= 175)) or (($n >= 224) and ($n <= 241))) {
$dos++;
}
}
if (($windows == 0) and ($dos == 0)) {
echo 'File contains no Russian charactes';
} else {
if ($windows > $dos) {
echo 'File contains Russian text in Windows encoding';
} else {
echo 'File contains Russian text in DOS encoding';
}
}