Значения в UTF-8 закодированы как NULL в JSON

У меня есть набор ключевых слов, которые передаются через JSON из БД (в кодировке UTF-8), некоторые из которых могут иметь специальные символы, такие как é, è, ç и т. Д. Это используется как часть автозаполнения. Пример:

array('Coffee', 'Cappuccino', 'Café');

Я должен добавить, что массив в том виде, в каком он поступает из БД, будет:

array('Coffee', 'Cappuccino', 'Café');

Но JSON кодируется как:

["coffee", "cappuccino", null];

Если я распечатаю их через print_r (), они будут отлично отображаться в кодировке UTF-8 веб-страница, но café отображается как "cafà ©", если используется text / plain, если я хочу посмотреть на массив с помощью print_r ($ array); exit ();.

Если я кодирую с помощью utf8_encode () перед кодированием в JSON, это нормально, но на веб-странице печатается «cafeà ©», а не «cafe».

Также странно, но json_last_error () рассматривается как неопределенная функция, Поскольку он сохраняется в AddAccountViewController , у меня есть запись в AddAccountViewController dealloc , которая освобождает его.

Однако, когда я иду удалить объект из ManagedObjectContext приложение вылетает со следующей (довольно непонятной) ошибкой:

Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
_Unwind_Resume called from function _PFFaultHandlerLookupRow in image CoreData.

После долгой отладки и выдергивания волос я обнаружил, что если я не освобождаю учетную запись в AddAccountViewController dealloc приложение постоянно работает правильно и не дает утечек согласно Instruments.

Может ли кто-нибудь пролить свет на то, что происходит? Из документации по свойствам я понимаю, что оставшиеся необходимо освободить. Что я пропустил?

Обновите, чтобы ответить Кевину ' (Я работаю над большим веб-сайтом, который работает таким образом) Вариант 1: