Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Смешанные кодировки входных данных привести к UTF-8 / 21 сообщений из 21, страница 1 из 1
19.11.2013, 11:10
    #38469540
Anton Klyauzov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Привет всем.

Используя Simple HTML DOM Parser, получаю набор строк с сайта (содержимое страницы) через file_get_html.
Часть подстроки с различных страниц приходит почему-то в разных кодировках. По крайнеей мере, после записи в файл я это вижу.

Вариант раз (первая чать кривая, вторая - нормальная):
noaiaa?o n ieiuaaeie iia eaaaaeo Бампер силовой задний РИФ для UAZ
вариант два (наоборот, первая ок, вторая не ок):
UAZ Hunter стандарт с калиткой Бампер силовой задний Р Р

Вопрос: существует ли класс, который понимает, что пришло и преобразует всё в один формат?
Сами страницы исходно как бы cp1251, но видимо наполнение всё же различное. А браузер понимает и отображает нормально, без каракуль.
Пробовал iconv (cp1251, utf-8, $text) нет положительного реультата
Пробовал этот класс , но он не помог. В частности fixUTF возвращает только знаки вопроса.

Помогите решить вопрос, пожалуйста.
...
Рейтинг: 0 / 0
19.11.2013, 11:14
    #38469544
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Anton Klyauzov А браузер понимает и отображает нормально, без каракуль.
Не верю, что браузер нормально отображает страницу, у которой половина в 1251, а половина в utf8
...
Рейтинг: 0 / 0
19.11.2013, 11:17
    #38469551
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Чего только не придумают чтоб контент не тырили
...
Рейтинг: 0 / 0
19.11.2013, 11:56
    #38469602
Anton Klyauzov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
vkle, ну не, тут нет воровства. Мы - официальное представительство этой компании в своем регионе. Всё с разрешения.
...
Рейтинг: 0 / 0
19.11.2013, 12:02
    #38469617
Anton Klyauzov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Вот пример исходника: http://autoventuri.ru/edit_book_form2.php?idtov=1210

Код парсинга примерно такой:
Код: php
1.
2.
3.
4.
5.
<?
$html = file_get_html($url);
$text = $html->find('p',0)->parent->innertext;
echo $text;
?>


получим вот это:
...
Рейтинг: 0 / 0
19.11.2013, 12:26
    #38469662
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Anton KlyauzovМы - официальное представительство этой компании в своем регионе.А отчего же нельзя официально запросить исходные данные в подходящем формате?
...
Рейтинг: 0 / 0
19.11.2013, 16:15
    #38470123
Anton Klyauzov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
vkle,
А потому что заниматься этим на той стороне некому. Все, типа, заняты.
...
Рейтинг: 0 / 0
19.11.2013, 16:37
    #38470173
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Anton KlyauzovКод парсинга примерно такойНу значит проблема в вашем парсере. Потому что если утянуть эту страничку через file_get_contentы(), то весть текст идет в одной кодировке.
...
Рейтинг: 0 / 0
19.11.2013, 22:16
    #38470559
Anton Klyauzov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Оказалось, проблема действительно в парсере.
Саму реализацию в коде не стал искать но нашел закономерность.
Если у нашего найденного "объекта" $parent содержимое начинается с простого текста, а не с с тега, и при этом обращаться к нему как к $parent->innertext то возникает такая чехарда с кодировками у текста, не заключенного в теги, например <p>.
В таком случае достаточно просто взять и обратиться к содержимому как echo $parent к примеру. Всё будет обработано корректно.
...
Рейтинг: 0 / 0
20.11.2013, 17:08
    #38471572
user199617
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Anton Klyauzov, кодировка для всей страницы задается.
...
Рейтинг: 0 / 0
22.11.2013, 17:58
    #38474759
Anton Klyauzov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
user199617Anton Klyauzov, кодировка для всей страницы задается.
Это я прекрасно понимаю, не первый год в веб разработке.

Парсер видимо как то не так реагирует на конструкции без открывающего тега.
Ну и еще кодировка на исходном сервере cp1251, а на обрабатывающем - utf-8, тут возможны тоже несостыковки
...
Рейтинг: 0 / 0
13.01.2014, 14:30
    #38524377
Влад45541
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
Блин товарищ помоги таже песня половина текста на utf-8 половина на 1251 вылазит, хотя как описано выше все в одном виде у поставщика :)
Как вы парсер правили?
...
Рейтинг: 0 / 0
13.01.2014, 15:08
    #38524451
Смешанные кодировки входных данных привести к UTF-8
Если кому понадобится на будущие!!!
simple_html_dom.php
$converted_text = iconv($sourceCharset, $targetCharset, $text);
меняем на
$converted_text = $text;

И автодетектор (кривой) убирается.
...
Рейтинг: 0 / 0
07.07.2014, 16:02
    #38689574
antonpresn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
А еще лучше исправить restore_noise
заменить
return $text;
на
return $this->nodes[0]->convert_text($text);
правда на скорую руку сделал и не везде тестировал
...
Рейтинг: 0 / 0
07.07.2014, 16:13
    #38689584
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
автор// clean up memory due to php5 circular references memory leak...
function clear()
{
$this->dom = null;
$this->nodes = null;
$this->parent = null;
$this->children = null;
}


Выбери терабайты бесплатного кода написанного криворукими самоучками...
...
Рейтинг: 0 / 0
07.07.2014, 16:37
    #38689611
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
ScareCrowавтор// clean up memory due to php5 circular references memory leak...
function clear()
{
$this->dom = null;
$this->nodes = null;
$this->parent = null;
$this->children = null;
}


Выбери терабайты бесплатного кода написанного криворукими самоучками...

вот любишь ты погнать. А то ты не самоучка?? наверно в универе годовые курсы слушал по пхп, джаваскрипту и прочему???
...
Рейтинг: 0 / 0
07.07.2014, 16:57
    #38689623
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
у меня в дипломе написанно "инженер-программист". я инженер. программист.

а ты кто?
...
Рейтинг: 0 / 0
07.07.2014, 17:11
    #38689637
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
ScareCrowу меня в дипломе написанно "инженер-программист". я инженер. программист.

а ты кто?

:) магистр. информационные управляющие системы и технологии.

но пхп в универе не учат. только основы веб = штмл, даже без стилей и джаваскрипта
...
Рейтинг: 0 / 0
07.07.2014, 17:15
    #38689641
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
alex564657498765453ScareCrowу меня в дипломе написанно "инженер-программист". я инженер. программист.

а ты кто?

:) магистр. информационные управляющие системы и технологии.

но пхп в универе не учат. только основы веб = штмл, даже без стилей и джаваскрипта

иди учись.
...
Рейтинг: 0 / 0
07.07.2014, 17:32
    #38689655
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
ScareCrowalex564657498765453пропущено...


:) магистр. информационные управляющие системы и технологии.

но пхп в универе не учат. только основы веб = штмл, даже без стилей и джаваскрипта

иди учись.

так ты не ответил - ты пхп где учил?
...
Рейтинг: 0 / 0
07.07.2014, 18:07
    #38689682
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смешанные кодировки входных данных привести к UTF-8
alex564657498765453ScareCrowпропущено...


иди учись.

так ты не ответил - ты пхп где учил?

Белгородский Государственный Технологический Университет. рекомендую.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Смешанные кодировки входных данных привести к UTF-8 / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]