php 5.4 — кодировка php 5.4 для исключения

В PHP 5.4 мой код не работает должным образом. Я использую кириллицу. Короче:

throw new Exception('Сообщение');

будет выводить:

Фатальная ошибка: в test.php …

хотя результатом будет:

Неустранимая ошибка: необработанное исключение «Исключение» с сообщением …

Если я не использую символы кириллицы, результат будет ОК. Более того, если я выполню этот код в 5.3, я получу правильный результат. И. е. если я использую кириллицу, результатом будет пустая строка.

2

Решение

Есть сообщения о проблемах с не UTF-8 символов в исключениях. Попробуйте преобразовать сообщение в utf-8 примерно так:

throw new Exception(utf8_encode('Сообщение'));

если это не работает, попробуйте следующее:

$message = 'Сообщение';
$message = mb_convert_encoding($message, 'Windows-1251', 'UTF-8');
throw new Exception($message);

— РЕДАКТИРОВАТЬ —

Проблема не в том, что сообщение об исключении не сохраняется, а в том, что исключение не отображается должным образом. В PHP 5.3 xdebug не включен по умолчанию, а в PHP 5.4 это так. xdebug настроен на отображение всего в UTF-8, и ваше сообщение, вероятно, закодировано в какой-то другой кодировке, поэтому сообщение не отображается правильно.

Если вы прокрутите вниз этот странице, вы найдете один комментарий, касающийся этой проблемы.

PHP сами отслеживали эту проблему на Вот

Этот поток также связано с той же проблемой.

Вы могли бы уйти, установив кодировку xdebug на кодировку не utf-8. пожалуйста прочитайте руководство по xdebug относительно этого

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]