эм… я на 99,999 уверен, что у меня utf-8.
на всякий случай перед помещением в массив конвертил так: iconv('cp1251', 'utf-8', 'значение');
Действительно, null превратился в последовательность типа u0437u0430 и тд.
То есть снова не могу декодировать. Ещё одна проблема в том, что между encode и decode весь JSON сохраняется в БД и декодируется уже оттуда.
Или изначально работайте c utf-8, но тогда вам скорее всего придется все скрипты переписать (потому что обычные строковые функции уже не подойдут), или заранее конвертируйте данные.
1. в интернете полно классов по работе с json в любой локале, но они в 1000 раз медленнее встроенной функции
2. никто не мешает пройтись по входным данным, найти все строки( или все нужные строки) и провести их через iconv
3. да, единственный супер стабильный вариант — utf-8 везде