Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, pessoal.
Estou reinstalando o PHP na minha máquina, fazendo o upgrade pra versão mais recente. Eu fiz uma instalação limpa, removi tudo e instalei novamente, dessa vez a versão 5.4.
Acontece que agora eu não consigo mais lançar exceções com caracteres acentuados se eles não estiverem codificados em utf-8. Se eu faço:
throw new Exception('á');
Obtenho um fatal error sem nenhuma mensagem.
Isso ocorre quando executo pelo navegador, através do apache.
Executando em linha de comando, a resposta vem normal:
>
#0 {main}
thrown in /index.php on line 3
Fatal error: Uncaught exception 'Exception' with message '�' in /index.php on line 3
Exception: � in /index.php on line 3
Call Stack:
0.0004 125312 1. {main}() /index.php:0
Se eu codifico o arquivo em utf8, passa a funcionar normalmente em ambas as interfaces.
Alguém já teve esse tipo de problema?
Grato...
Vix, pior que eu tentei umas tantas combinações de keywords e não achei nada...
Nesse bug aí, o cara parece estar tendo problemas com unicode, o meu problema é que SÓ FUNCIONA com unicode... :pinch:
Nesse ritmo, vou ter que tentar voltar ao PHP 5.3...
Edit:
Se eu faço assim:
function exceptionHandler($e) {
//echo utf8_encode($e);
echo $e;
}
set_exception_handler('exceptionHandler');
Funciona, ele mostra a mensagem da exceção na tela, mas não é no melhor formato possível...
E eu ainda gosto de utilizar o xdebug, pq ele provê melhores informações sobre o problema...
Não experimentei esse problema pois trabalho com UTF8 como padrão.
Pode estar relacionado com o bug reportado em Abril de 2012, código 61362
https://bugs.php.net/bug.php?id=61362&edit=1
Não tinha muita idéia do que usar na pesquisa, então pesquisei assim no google:
php 5.4 throw new Exception encode