Códificação de caracteres no Apache + PHP5

Iniciado por herberthnilsen, 10 de Janeiro de 2011, 15:30

tópico anterior - próximo tópico

herberthnilsen

Olá gente, é o seguinte, tenho minha aplicação PHP aqui na empresa, o server é um Windows Server 2003 e antes de migrar para ubuntu, o pessoal mudou todo o banco mysql e arquivos do projeto para utf-8, porém, agora que estou no Ubuntu, quando busco dados do banco, as palavras que contém caracter especial é retornada como null,

No Apache já coloquei a linha AddDefaultCharset para utf-8, para iso8859-1, já mudei também o php.ini na linha default_charset para utf-8 e iso8859-1 e nada


alguém pode me ajudar?

desde já agradeço

agente100gelo

Como está a configuração do seu arquivo PHP?
Está corretamente codificado para UTF-8?
Advogado e analista de sistema cearense.
Twitter: @glaydson

herberthnilsen

todos os arquivos do projeto estão todos com UTF-8, e quando configuro o Apache para iso-8859-1, ele bagunça todas as telas com caracteres especiais e não apenas os dados do banco, que nem é hj


o meu único problema é interpretar dados do banco, pois o banco também está em utf-8



agente100gelo

Porque o Apache em iso-8859-1?
Deixa tudo em UTF-8 (apache, arquivos php e banco de dados).

Você consegue fazer buscas via terminal? Ou MySQL Query Browser?

Uma possibilidade é que a conversão para UTF-8 tenha sido mal feita e o MySQL tenha gravado caracteres especiais.

Advogado e analista de sistema cearense.
Twitter: @glaydson

herberthnilsen

já deixei tudo com utf-8 e nada funciona

eu faço busca no mysql direto pelo netbeans, e nunca dá erro de caracter

no banco mesmo já aparece o dado 'Serviço' sem nenhum tratamento nem nada, e o erro só ocorre no meu localhost, no servidor está funcionando perfeitamente

Desde já agradeço a atenção

agente100gelo

Advogado e analista de sistema cearense.
Twitter: @glaydson

herberthnilsen

infelizmente não funcionou, nada aconteceu

continuou na mesma, e não é cache do browser, porque o meu firefox não armazena cache

mais uma vez, obrigado

agente100gelo

Dá uma olhada no resultado do seguinte comando:

http://www.php.net/manual/en/function.mysql-client-encoding.php

Verificar se tá retornando UTF-8 mesmo.
Advogado e analista de sistema cearense.
Twitter: @glaydson

herberthnilsen

agente100gelo, obrigado, mas eu consegui resolver aqui este problema, como eu utilizo o PDO na minha aplicação, dei uma estudada e vi que tem um parametro que passo no momento de criação da conexão do mysql

este é o parametro: PDO::MYSQL_ATTR_INIT_COMMAND => 'set names utf8'

ele força o mysql iniciar a conexão com o charset UTF-8, ou qualquer outro charset que vc queira


mesmo assim, muito obrigado pela ajuda e paciência, irei marcar este tópico como RESOLVIDO

mais uma vez, obrigado pela ajuda