utf8 – Блог Stafox'a https://stafox.cc О программировании и веб-разработке Mon, 16 Nov 2015 21:21:46 +0000 en-US hourly 1 https://wordpress.org/?v=5.8.2 Symfony 2: парсинг UTF-8 данных с DomCrawler https://stafox.cc/symfony-2-parse-utf-8-data-using-domcrawler/ https://stafox.cc/symfony-2-parse-utf-8-data-using-domcrawler/#respond Sun, 11 Oct 2015 18:27:13 +0000 http://stafox.ru/?p=2678 На днях необходимо было распарсить ресурс в рамках проекта на Symfony 2. Для этого я решил воспользоваться Сrawler’ом – компонентом Symfony, который позволяет работать с DOM элементами, используя при этом XPath и CSS фильтры. Но возникла проблема с кодировкой. Некоторые символы выглядели явно не так, как должны были, несмотря на то, что везде где можно

Сообщение Symfony 2: парсинг UTF-8 данных с DomCrawler появились сначала на Блог Stafox'a.

]]>
На днях необходимо было распарсить ресурс в рамках проекта на Symfony 2. Для этого я решил воспользоваться Сrawler’ом – компонентом Symfony, который позволяет работать с DOM элементами, используя при этом XPath и CSS фильтры. Но возникла проблема с кодировкой.

Некоторые символы выглядели явно не так, как должны были, несмотря на то, что везде где можно использовалась кодировка UTF-8. Дело в том, что Crawler использует кодировку ISO-8859-1 в том случае, если он не смог ее определить по мета-тегу


<meta charset="utf-8">

Исправить проблему можно воспользовавшись методом addHtmlContent(), который вторым параметром принимает кодировку (по умолчанию – UTF-8).

Поэтому вместо


use Symfony\Component\DomCrawler\Crawler;
...
$crawler = new Crawler($html);

нужно использовать


use Symfony\Component\DomCrawler\Crawler;
...
$crawler = new Crawler();
$crawler->addHtmlContent($html);

Сообщение Symfony 2: парсинг UTF-8 данных с DomCrawler появились сначала на Блог Stafox'a.

]]>
https://stafox.cc/symfony-2-parse-utf-8-data-using-domcrawler/feed/ 0