Вывод var_dump / print_r в PHP искажен – проблема с кодировкой?

У меня проблема, когда на сервере вывод var_dump и print_r выходит полностью искаженным. print_r выводит чистую тарабарщину (например, ]{W 8 - … и т. д.), в то время как var_dump по крайней мере дает string (1664) , за которой следует аналогичная тарабарщина (хотя на этот раз завернуты в двойные кавычки).

Это похоже на проблему кодировки символов, но никакая кодировка, которую я могу найти, по-видимому, не исправляет ее (и я не знаю, почему просто демпинг объекта PHP должен выводить символы не-ascii), и echo работает нормально. В качестве альтернативы, интересно, может ли это быть проблемой gzip. В любом случае, я подозреваю, что это должно быть что-то в конфигурации PHP или Apache, но я понятия не имею, как это исправить.

Я был бы очень благодарен, если у кого-нибудь есть какие-то предложения относительно того, как это исправить!


Обновление: при дальнейшем расследовании кажется, что это проблема, специфичная для конкретного объекта, который я пытаюсь сбрасывать. Объект, о котором идет речь, декодируется JSON, запрошенным (через curl) из API. Возможно ли, что json_decode или curl могут быть неправильно сконфигурированы / искажены кодирование?

Для чего это стоит, я, наконец, дошел до сути этой проблемы (я думаю!)

Проблема заключается в том, что вывод API выполнялся через json_decode независимо от того, был ли он JSON или нет. Ошибки MySQL вызывали страницу с ошибкой, а не ответ JSON, который при запуске через json_decode (с помощью кода обработки API, который его получил) до того, как var_dump произвел искаженный салат, как указано выше.