Олег Анатольевич
15 дек. 2014 г., 8:09

Кодировки и mysql_query

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

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