sábado, 27 de junho de 2015

Corrigindo acentuação no Blade do Laravel 5 com SQL Server

Olá galera,

O post de hoje é uma contribuição do nosso amigo Anderson Nunes.

Conversando com Anderson, fui questionado se já havia me deparado com o problema de acentuação no Blade. Ele ainda comentou que debugando dentro do Controller a acentuação estava correta.

O ambiente utilizado foi uma box do Vagrant Ubuntu/Trusty 64 com Apache e PHP instalados. Além disso, foi instalado o FreeTDS e setado o charset para UTF-8.

Após vários testes, não conseguimos detectar o que poderia estar acontecendo. Falei com Anderson que gostaria que ele compartilhasse a solução caso fosse encontrada. No dia seguinte, ele me informou que resolveu o problema alterando o arquivo app/Providers/AppServiceProvider.php.

Deixe o método boot com o código abaixo.

    public function boot()
    {
        parent::boot();
        \Blade::setEchoFormat('e(utf8_encode(%s))');
    }
  

Bem pessoal, espero que a solução do Anderson possa ajudar a quem se deparou com o mesmo problema.

Anderson mais uma vez muito obrigado pela contribuição e precisando estamos a disposição.

Um grande abraço a todos e até a próxima.

6 comentários:

  1. O meu continua com esses malditos M � mesmo após colocar a linha indicada.

    ResponderExcluir
    Respostas
    1. Olá yargo,

      Esse problema pode estar ligado na própria criação do arquivo. Você já verificou se está sendo criado com UTF-8?

      Abraço

      Excluir
    2. Quando verifiquei, o arquivo estava sendo criando em ANSI, quando criei com UTF-8, funcionou. Obrigado!

      Excluir
  2. Olá!
    Comigo aconteceu a mesma coisa, porém a sua solução não funcionou, oq deu certo foi:
    No model:
    public function getHistorico()
    {
    return utf8_encode($this->Historico);
    }

    Na view:

    {{ $gasto->getHistorico() }}

    Abç!

    ResponderExcluir
    Respostas
    1. Olá Rodrigo,

      Muito obrigado por compartilhar sua solução conosco.

      Abraço

      Excluir
  3. Comigo funcionou com a dica do Benicio, a criação do arquivo foi feita em ANSI, e não UTF-8. Quando corrigi, o acento apareceu.

    ResponderExcluir