Olá pessoal,

Hoje falarei um pouco de um problema relativamente comum entre os atuantes da área de desenvolvimento: acentuação.

Este tutorial foi testado no seguinte ambiente/situação:

- S.O.: CentOS 5.2
- PHP : 5.2
- OCI : Oracle Instant Client 10g

Ao tentar acessar (de outro servidor) uma view de um banco de dados Oracle, os caracteres especiais eram exibidos com '?' (interrogação).

Testei várias formas, mas a única que funcionou para mim foi essa: NLS_LANG.

Os passos são os seguintes:

1. Abra no modo de edição o arquivo /etc/sysconfig/httpd. Pode utilizar o seguinte comando para isso:
vi /etc/sysconfig/httpd
2. Adicione a seguinte linha no final do arquivo:
export NLS_LANG=american_america.WE8ISO8859P1
Caso a linha já exista, verifique a codificação que está utilizando, na maioria das vezes é essa acima.

3. Salve o arquivo e reinincie o apache.
service httpd restart
Até a próxima :-)



Sobre o Autor:
Guilherme Oliveira
Guilherme Oliveira trabalha com desenvolvimento de software a mais de 10 anos. É técnico em informática, bacharel em ciência da computação, especialista em engenharia de software, além de ser Oracle Certified Java Programmer 6 (OCJP 6). Suas áreas preferidas são desenvolvimento web e games.

  1. gravatar

    # by Andre - 8 de maio de 2013 às 11:18

    Cara, show de bola!
    Eu tinha resolvido isso há algum tempo para uma aplicação de terceiros que dava erro na acentuação, e por algum motivo uma atualização do CentOS quebrou a solução!
    Não lembrava mais como tinha feito, mas fiz assim agora e deu certinho! Mudei apenas o export, que coloquei export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1"!

    Valeu!