Из-за чего могут быть проблемы с кодировкой в PHP при некоторых операциях?
Возникли проблемы при интеграции с некоторыми сервисами - команда json_encode возвращает пустую строку при кодировании массива в json. Во время отладки выяснилось, что часть данных в массиве в кодировке ISO-8859-1.
Тоже происходит и при записи данных файл.
Массив формируется из двух источников - данные из БД и данные захардкоренные в коде в файлах в UTF-8.
Два разных скрипта ведут себя по разному - в одном данные которые добавляются в коде и записываются в файл с помощью file_put_contents в этом итоговом файле в UTF-8, а данные из БД в ISO-8859-1.
Такой массив при попытке получить json превращается в пустую строку.
В другом все данные в файл записываются в ISO-8859-1, и прекрасно выводятся в браузере в виде UTF-8 и отлично конвертируются в json.
О том что кодировка ISO-8859-1 узнал после перекодирования на сайте Лебедева.
В параметрах Php везде UTF-8. ISO-8859-1 вообще нигде не фигурирует.
Даже не знаю куда копать.
Тэг битрикс при том, что сайт на битрикс, но думаю это вообще не имеет значения.