Problema de acentuação após instalar nova versão do PHP
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.
Discussão (3)
Carregando comentários...