Владимир55
19.02.2015 - 22:39
Скрипт работает на Денвере и обрабатывает текстовую информацию, получаемую из текстового файла. Вся информация на русском, хотя вкрапление латиницы не исключено.
К сожалению, содержимое текстовых файлов может быть как в виндусовой кодировке, так и в UTF-8. А потому возникает необходимость автоматически определить, в какой кодировке данный текст.
Полазив по сети, я понял, что точного решения у этой проблемы нет, но упоминается некая функция IsTextUnicode, корую в справочнике РНР я не нашел.
И вот я не пойму, можно определить кодировку текста или нет?
Zzepish
20.02.2015 - 00:25
Владимир55
могу кинуть вариант. Но он работает ТОЛЬКО если она прописанна на сайте
Владимир55
20.02.2015 - 00:59
Прописать кодировку на сайте под Денвером не проблема.
sergeiss
20.02.2015 - 01:03
Владимир55, вот "твоя" функция, если я правильно понял задачу
http://php.net/manual/ru/function.mb-detect-encoding.phpecho mb_detect_encoding( $str, array( 'utf-8', 'cp1251') ).'<br>';
Тут же можно и преобразовать, если неподходящая кодировка окажется, функцией iconv()
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Владимир55
20.02.2015 - 01:17
Да, это оно и есть.
Спасибо!
Zzepish
20.02.2015 - 03:03
А вот универсальный вариант
$url='http://ваш сайт';
$get=file_get_contents($url);
preg_match('/charset=[^\s\'"]+/',$get,$grab_charset);
$charset=str_replace('charset=','',$grab_charset[0]);
$get=iconv($charset,'utf-8',$get);
$get=mb_convert_encoding($get, 'utf-8', $charset);
Zzepish
20.02.2015 - 04:11
volter9
что не нравится то? мало-ли какая кодировка. А иначе- как узнавать?
volter9
20.02.2015 - 04:20
ZzepishДело не в кодировке, сначала написал что "
ТОЛЬКО если она [кодировка] прописана на сайте", а потом написал "
универсальный вариант", т.е. противоречие предыдущего сообщение. Вот мне это и показалось забавным, не сердись.
_____________
Мой блог
Zzepish
20.02.2015 - 04:49
volter9
да я не сержусь) я подразумеваю, что она универсальная в данном случае))