суть: была задача — написать парсер, взять полученную информацию и записать в ресурсы.
в modx я новичок, поэтому, недолго думая, написал класс для добавления напрямую в таблицу modx_site_content.
все бы прошло как по маслу, но почему-то в базу записываются кракозябры. проверил — везде кодировка utf8: в базе, в документе и в отправленном запросе. где-то есть косяк, но найти его не могу.
я знаю, что можно средствами modx это провернуть, и так я и сделаю в конце концов, но хочется понять, почему так происходит.
пример кракозябр êîíòåíò
везде кодировка utf8: в базе, в документе и в отправленном запросе.
Важно не в отправляемом запросе, а в получаемом ответе. Ведь вы получаете ответ от другого сервера, там может быть не utf-8. Откройте сайт-источник и посмотрите в браузере какую он кодировку отдает. Скорее всего в windows-1251. Поэтому полученные данные надо сначала перекодировать.
$string = mb_convert_encoding($string, 'utf-8', 'windows-1251');
А потом уже сохранять и что угодно делать.
не помогло, кракозябры другие стали конÑ
отошел от сайта источника, попытался записать текст, введенный руками, та же история. следовательно не в том дело
Проблема была в использовании стороннего класса для работы с БД, который не устанавливал автоматически кодировку сопоставления (а в ручную тоже не прописали). Перешли на работу через xPDO, все зашуршало.
спасибо, Николай, выкидываю значит запчасти жигулевские, заказываю от танка
Пожалуйста!