Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

klonder

Problema de acentuação após instalar nova versão do PHP

Recommended Posts

Olá pessoal!

Já pesquisei em vários, vários, vários locais e até agora não consegui solucionar o meu problema. Já encontrei vários tópicos sobre acentuação em php e mysql, já fiz diversas mudanças e até agora: NADA!

Vou explicar o meu problema:

 

Formatei o computador (meu sistema: Win7 Ultimate, 64bits) e instalei o PHP 5.3.8 (php-5.3.8-nts-Win32-VC9-x86.zip)

Meus sites possuiam o charset setado como ISO-8859-1 e rodavam sem problema algum na versão antiga (se não me engano era 5.2.11). Após instalar a nova versão do PHP, não consigo mais mostrar caracteres acentuados nos sites.

 

Já alterei o charset:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

 

Já alterei o header:

header("Content-Type: text/html; charset=utf-8",true);

header("Content-Type: text/html; charset=iso-8859-1",true);

 

Tive problemas inclusive com caracteres recuperados do banco de dados, ou melhor, quando consigo arrumar os caracteres do site (alterando os charsets, headers), estrago os que são retornados do banco de dados.

 

Pra vocês terem uma noção do meu problema, abri o site do UOL aqui pelo navegador sem problema algum. Copiei todo o código-fonte para minha máquina local (servidor IIS), não mudei nada, nenhuma vírgula, e quando abri pelo localhost o que aconteceu??? ----> Todos os acentos errados!!!

 

Além disso, já alterei o COLLATION do banco, conforme proposto no tópico:

http://forum.imasters.com.br/topic/232144-utitlizo-charset-iso-8859-1/

 

No banco de dados, os acentos aparecem corretamente quando visualizo os dados pelo PHPMyAdmin. Quando uso a codificação UTF-8 (sem banco de dados) o texto retornado é semelhante a:

Observa��o: O nome, n�mero do CRM e e-mail n�o podem ser alterados.

 

Já fiz isso:

http://www.vivaolinux.com.br/dica/Problemas-com-acentuacao-no-PHP-e-MySQL

 

Já tentei isso:

http://forum.imasters.com.br/topic/443220-problemas-de-acentuacao-php-mysql/

 

Já tentei isso:

http://forum.imasters.com.br/topic/283085-resolvido-acentuacao-utf-8-e-iso/

 

E tentei várias outras coisas, porém o problema persiste!!!

 

 

Então, pergunto:

- Por que não posso criar meus sites no formato UTF-8, sendo que o site do UOL possui esse formato e roda bem pelo navegador, porém não roda aqui localmente? Além disso, quero o site em UTF-8, pois suporta todos os demais formatos.

 

- Seria o problema nessa versão do PHP? Antes, o mesmo site não apresentava problema algum. É o mesmo código fonte!

 

- Quando envio o site para o servidor, no formato UTF-8, os acentos também ficam errado.

 

 

Alguém teria alguma resposta para o meu problema???

 

Utilizando os charset e headers para ISO-8895-1 o site suporta bem os acentos.

 

Para recuperar os acentos do banco de dados mySQL tive que fazer a conexão da seguinte maneira:

 

// Fazendo a conexão com o servidor MySQL
$bd_objConn = mysql_connect($bd_host,$bd_user,$bd_senha) or die($bd_msg[0]."<br>Erro: ".mysql_error());
//Selecionando o Banco de Dados
$bd_selectDB = mysql_select_db($bd_name,$bd_objConn) or die($bd_msg[1]."<br>Erro: ".mysql_error());
//mysql_set_charset('utf8',$bd_objConn);
mysql_query("SET NAMES 'latin1'");
mysql_query("SET character_set_connection=latin1");
mysql_query("SET character_set_client=latin1");
mysql_query("SET character_set_results=latin1");

 

Desse modo, os acentos foram retornados corretamente. Porém, ainda não consegui fazer em UTF-8.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bobeira, mas já tentou mudar a codificação do navegador?

O problema do UTF-8 é que não é completamente suportado, por isso eu acabo escolhendo o ISO-8859-1. Nunca tive problemas.

 

Bizarro é que esses headers deveriam resolver :ermm:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experiência de um colega de trabalho:

 

Usavam o phpDesigner para a programação, mas então mudaram para o Dreamweaver. Ai começou a dar esse problema de caracteres e acentos, a resolução sempre era de mudar o charset de utf-8 para iso-8859-1 ou vice-versa. Essa solução não deu certo.

 

Foi descoberto, então, que o documento salvo no Dreamweaver não era na mesma codificação que o documento salvo no phpDesigner. Mesmo abrindo o documento no phpDesigner e salvando ele no "salvar como..." não dava certo. Meu colega descobriu que nas configurações do phpDesigner há uma opção para "forçar" somente uma codificação de arquivo. Agora qual ele utilizou e aonde ele foi, não me lembro =(

 

Mas da uma pesquisada nisso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tive esse problema

você vai ter q configurar o apache tipo:

 

AddDefaultCharset UTF-8

trocar o UTF-8 por iso8859-1.

 

A linha vai ficar assim:

AddDefaultCharset iso8859-1

 

Agora, restart ao serviço httpd:

# service httpd restart

ou

# /etc/init.d/httpd restart

 

 

pronto depois de reiniciar com certeza vai funcionar eu já tive esse mesmo problema e essa é a única maneira de resolver e foi difícil pra mim encontrar uma solução na época.

 

Tem esse link aqui que explica melhor http://under-linux.o...o-apache-76877/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.