Как определить кодировку текста на пхп


bicdibus
287

Я путем парсинга получаю текст с рандомных страниц сайтов, чарсет в хтмл очень часто не соответствует реальности. В задумке была перекодировка текста в утф-8, но перепробовав много разных вариантов(встроенных в пхп и сторонних бтблиотек) не получаеться даже нормально задетектить утф-8. Мне надо хотя бы определять что текст является утф. Лучшего что удалось достичь это около 70% точность определения, что слишком мало, приемлемо 90-95%.


lutskboy

mb_detect_encoding

я пользуюсь функцией


function set_utf8_meta($page)
{
return preg_replace('/<head.*?<meta[^>]+>/is',
'<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">',
$page);
}

а потом парсинг. xpath


ivan-lev

bicdibus:
Лучшего что удалось достичь это около 70% точность определения, что слишком мало, приемлемо 90-95%.

Разбирать, что не так в «ошибочных» вариантах.

Бывает, что в одной странице смесь кодировок.. (ибо собиралась из разных файликов.. )

Какие ещё потенциально могут быть кодировки? Речь о кириллице или всё подряд?..

Возможно, на странице emoji используются..


bicdibus

мне кирилица нужна


onep

bicdibus:
Мне надо хотя бы определять что текст является утф.

В инете куча классов и функций заменяющих некорректно работающую с кириллицей mb_detect_encoding.

Например: _github.com/onnov/detect-encoding

_github.com/ivanmtw/detect_encoding

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *