Сообщение об исключении не отображается, если к выходу применяется json_encode - PullRequest
0 голосов
/ 20 октября 2011

Вот код:

try{
//The exception is thrown.
throw new Exception('Parâmetros de consulta inválidos');

// and in the catch block it's caught successfully:
}catch(Exception $e){
    echo $e->getMessage(); //This prints the message correctly.

    $output = json_encode(array('msg'=>$e->getMessage()));
    echo $output; //But this fails...displays {"msg":null}

}

В чем здесь проблема?

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Если вы используете версию PHP> = 5.4.0, вам следует вызвать функцию json_encode с флагом JSON_UNESCAPED_UNICODE. http://php.net/manual/en/function.json-encode.php

1 голос
/ 20 октября 2011

Проблема с персонажем â и á.Фактически, если вы замените их на простой a, вы получите правильное сообщение.

Замените эту строку:

array('msg'=>$e->getMessage())

на:

array('msg'=>utf8_encode($e->getMessage()))

Вы должны сделать это изменение, потому что json_encode работает с ut8, поскольку вы можете прочитать здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...