PHP json_encode возвращает значение null из символа Unicode

У меня есть следующий массив:

Array ( [BookDateID] => 4 [HotelName] => Adams' Inn ) 

Вывод:

 {"BookDateID":"4","HotelName":null} 

Любая магия?

BTW, у меня есть альтернативное решение, зацикливая через каждый массив и получив их mb_convert_encoding (str, 'HTML-ENTITIES'), но я хочу, чтобы символ остался таким же, как я должен вставить его в БД.

 foreach ($ array as $ key => $ value) {
     $ array [$ key] = mb_convert_encoding ($ value, 'HTML-ENTITIES');
 }

Related of "PHP json_encode возвращает значение null из символа Unicode"

json_encode нужны кодированные данные UTF-8. Убедитесь, что данные закодированы в кодировке UTF-8; в настоящее время он, скорее всего, кодируется латинским-1. Как это сделать, зависит от того, откуда поступают данные. Прочитайте, что каждый программист абсолютно, положительно должен знать о кодировках и наборах символов, чтобы работать с текстом и работать с Unicode Front To Back в веб-приложении .