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

bicdibus
На сайте с 14.08.2010
Offline
136
303

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

[cerebelum.ru
lutskboy
На сайте с 22.11.2013
Offline
174
#1

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

IL
На сайте с 20.04.2007
Offline
435
#2
bicdibus:
Лучшего что удалось достичь это около 70% точность определения, что слишком мало, приемлемо 90-95%.

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

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

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

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

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
bicdibus
На сайте с 14.08.2010
Offline
136
#3

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

O
На сайте с 30.09.2019
Offline
18
#4
bicdibus:
Мне надо хотя бы определять что текст является утф.

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

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

_github.com/ivanmtw/detect_encoding

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий