Как запретить json_encode () отбрасывать строки с недопустимыми символами

Есть ли способ запретить json_encode () возвращать null для строки, содержащей недопустимый символ (не UTF-8)?

Это может быть заноза в заднице для отладки в сложной системе. Было бы гораздо удобнее увидеть недопустимый символ или, по крайней мере, его опустить. В существующем виде json_encode () молча отбросит всю строку.

Пример (в UTF-8):

$string = 
  array(utf8_decode("Düsseldorf"), // Deliberately produce broken string
        "Washington",
        "Nairobi"); 

print_r(json_encode($string));

Результаты в

[null,"Washington","Nairobi"]

Желаемый результат:

["D�sseldorf","Washington","Nairobi"]

Примечание : Я не пытаюсь заставить работать сломанные строки в json_encode (). Я ищу способы упростить диагностику ошибок кодирования. Строка null в этом случае бесполезна.

35
задан Pekka supports GoFundMonica 11 January 2011 в 23:26
поделиться