ilyaplot
@ilyaplot
PHP программист

Чудеса с BLOWFISH внутри JSON

Вот мой код:

   $message = mcrypt_ecb(MCRYPT_BLOWFISH, 12344532523532, $message, MCRYPT_ENCRYPT);
    $answer = array("message"=>$message, "code"=>$code);
    var_dump($answer);
    echo json_encode($answer);
    exit();


А вот и результат

array(2) { 
    ["message"]=> string(24) "zС”Э»Пі^cptO«qq@Юн " 
    ["code"]=> int(1) 
} 


{"message":null,"code":1}


Подскажите, откуда такие чудеса? json съедает неизвестные ему символы?
  • Вопрос задан
  • 3070 просмотров
Решения вопроса 1
Sardar
@Sardar
JSON парсер может отваливаться в тихую, если не может распознать кодировку. Тем более в закодированных данных в конце padding из \0, что совсем не текст. Упакуй в base64.

Чем читаешь? В браузере?
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
janson
@janson
PHP-разработчик
Подскажите, откуда такие чудеса? json съедает неизвестные ему символы?


Если кириллица и PHP 5.4 и выше, добавьте JSON_UNESCAPED_UNICODE.
Если кириллица и PHP < 5.4 — смотрите www.php.net/manual/ru/function.json-encode.php в комментах есть реализация для PHP 5.3

Собственно сам json ничего съедать не может.
Ответ написан
Комментировать
janson
@janson
PHP-разработчик
дубль. ПРошу прощения
Ответ написан
Комментировать
janson
@janson
PHP-разработчик
дубль. ПРошу прощения
Ответ написан
Комментировать
janson
@janson
PHP-разработчик
дубль. ПРошу прощения
Ответ написан
Комментировать
DjPhoeniX
@DjPhoeniX
Hardcore iOS & ESP developer & DJ
А если сделать так?
echo json_encode($answer,JSON_UNESCAPED_UNICODE);
Ответ написан
Комментировать
DjPhoeniX
@DjPhoeniX
Hardcore iOS & ESP developer & DJ
/* дубль, хабр залагал… */
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы