Eduardo Rissao Posted March 28, 2015 Share Posted March 28, 2015 Olá, Depois de transferir meu site para a nova hospedagem, começou a me aparecer problemas na acentuação em alguns lugares do site. Estava configurado da seguinte forma: No código php (junto com o html) do site, o charset estava iso-8859-1, e no banco de dados do site estava no uf8_unicode_ci, porem em cada tabela estava o latin1_sweddish_ci Teoricamente, era para estar tudo correto, mas não estava. Então mudei o charset no código para utf-8, e arrumou uma parte. Porem na descrição da aba deu erro no acento, e tive que colocar aqueles códigos html para acentos. Entretanto, quando eu coloco o link dele no facebook, fica bugado, veja: http://prntscr.com/6mdyxv O que eu faço? Atenciosamente, Eduardo Rissão 0 Quote Link to comment Share on other sites More sharing options...
AntonioDuarte Posted March 28, 2015 Share Posted March 28, 2015 No arquivo que faz a conexão com o banco, tente usar: mysql_set_charset('latin1',$conexao); substitua $conexao pela nome da sua string de conexão. 0 Quote Link to comment Share on other sites More sharing options...
Eduardo Rissao Posted March 28, 2015 Author Share Posted March 28, 2015 No arquivo que faz a conexão com o banco, tente usar: mysql_set_charset('latin1',$conexao); substitua $conexao pela nome da sua string de conexão. Mas o próprio banco de dados está enviando o charset Veja, fiz algumas mudanças e deixei o site todo em charset iso-8859-1 e o banco de dados em latin1_swedish_ci. O rodapé, por exemplo, está normal (mesmo não sendo pego do banco de dados). Já o http://prntscr.com/6meg8qestá. O que será que é isso...? 0 Quote Link to comment Share on other sites More sharing options...
AntonioDuarte Posted March 28, 2015 Share Posted March 28, 2015 As funções abaixo define o conjunto de caracteres para a conexão atual (convertendo como está no banco de dados). Exemplos: mysql_set_charset('latin1',$conexao); mysql_set_charset('utf8',$link); ou conexão MySQLi: mysqli_set_charset('latin1',$conexao); mysqli_set_charset('utf8',$conexao); Esse problema geralmente ocorre quando você importa as tabelas para um novo banco que está com o chaset diferente do antigo. Se você acessar as tabelas diretamente no banco, também é visualizado o texto com essas modificações nos caracteres? Caso esteja com as modificações de caracteres no texto direto no banco, você pode também refazer a importação do banco. No novo banco, modifique o charset para o mesmo do banco antigo antes de importar. 0 Quote Link to comment Share on other sites More sharing options...
Anger Posted March 28, 2015 Share Posted March 28, 2015 @Eduardo Rissao Todos os textos do seu site são puxados pelo banco de dados? 0 Quote Ajude o fórum! Antes de postar, leiam as regras de postagem aqui. Link to comment Share on other sites More sharing options...
Michael Posted March 28, 2015 Share Posted March 28, 2015 abra o arquivo de conexão com o banco por exemplo conexao.php e lá entre <?php e ?> coloque este código que garanto que vai arrumar: header('Content-Type: text/html; charset=utf-8'); mysql_query("SET NAMES 'utf8'"); mysql_query('SET character_set_connection=utf8'); mysql_query('SET character_set_client=utf8'); mysql_query('SET character_set_results=utf8'); 0 Quote Link to comment Share on other sites More sharing options...
Eduardo Rissao Posted March 28, 2015 Author Share Posted March 28, 2015 abra o arquivo de conexão com o banco por exemplo conexao.php e lá entre <?php e ?> coloque este código que garanto que vai arrumar: header('Content-Type: text/html; charset=utf-8'); mysql_query("SET NAMES 'utf8'"); mysql_query('SET character_set_connection=utf8'); mysql_query('SET character_set_client=utf8'); mysql_query('SET character_set_results=utf8'); Sim, agora arrumou a parte que estava com defeito, mas bugou as outras, veja: http://prntscr.com/6mjbjp Atenciosamente, Eduardo Rissão 0 Quote Link to comment Share on other sites More sharing options...
Eduardo Rissao Posted March 28, 2015 Author Share Posted March 28, 2015 @Eduardo Rissao Todos os textos do seu site são puxados pelo banco de dados? Não, nem todos. Na página inicial, somente o que está com problema mesmo. Isso e as fotos, na galeria. Segue o código da index: <? session_start(); require_once "icontrol/_lib/icontrol.php"; require_once "icontrol/_lib/icontrol.pontualweb.php"; require_once "icontrol/_lib/conndb.php"; require_once "icontrol/_lib/functions.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="keywords" content="moveis, marcenaria, cozinhas, armarios, planejados"> <meta name="description" content="A GR Móveis Planejados é atualmente uma das principais fabricantes de móveis planejados do interior paulista. Com equipamentos de última geração e tecnologia de ponta, a GR utiliza materiais que atendem aos mais exigentes padrões de qualidade do mercado, prezando por um acabamento impecável!"> <title>GR Móveis Planejados</title> <link href="estrutura.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> </head> <body> <div class="topo"><img src="imagens/logo.jpg" width="984" height="199" /></div> <div class="menu" align="center"> <? include("menu.php"); ?> </div> <div class="banner1"> <? include('banner.php'); ?> <br /> <? $sqlHome = "select * from imovel where imoInterna = 'S' order by imoCodigo desc limit 2"; $qryHome = mysql_query($sqlHome); ?> <div style="width:954px; margin:auto;"> <ul style="list-style:none; padding:0px; margin:0;"> <? while ($itens = mysql_fetch_assoc($qryHome)) { ?> <li style="display:inline-block; background-image:url(imagens/sombraHome.png); width:475px; height:277px; position:relative;"> <div style="height:25px; padding:10px; text-align:left; font:16px verdana; color:#FFF;"><a href="internas.php?cod=<?= $itens['imoCodigo']; ?>" style="text-decoration:none; font:16px verdana; color:#FFF;"><?= $itens['imoNome']; ?></a></div> <ul style="list-style:none; padding:0px 10px; margin:0;"> <? $sql = "select * from fotos where imoCodigo = {$itens['imoCodigo']} limit 1"; $qry = mysql_query($sql); while($apreFotoP = mysql_fetch_assoc($qry)) { $i++; if (vrfExtensao('imagem', 'web/imagens/produtos/site/miniaturas/', $apreFotoP['imoCodigo'] . '_' . $apreFotoP['fotCodigo']) == true) { $miniatura = $img; list($w, $h) = getimagesize($miniatura); $image_file = $miniatura; $targetfile = "maskara/maskara" . $apreFotoP['imoCodigo'].$apreFotoP['fotCodigo'] .".jpg"; $photo = imagecreatefromjpeg($image_file); $fotoW = 165; $fotoH = 165; $photoFrame = imagecreatetruecolor($fotoW,$fotoH); $dest_x = ($w - $fotoW) / 2; $dest_y = ($h - $fotoH) / 2; imagecopy($photoFrame, $photo, 0, 0, $dest_x, $dest_y, $fotoW, $fotoH); imagejpeg($photoFrame, $targetfile); ?> <li style="display:inline-block; width:170px;"><a href="internas.php?cod=<?= $itens['imoCodigo']; ?>"><img src='<?= $targetfile; ?>' border="0"/></a></li> <? unset($targetfile); } } ?> <li style="display:inline-block; width:280px; font:12px verdana; color:#FFF; vertical-align:top; text-align:left;"><a href="internas.php?cod=<?= $itens['imoCodigo']; ?>" style="text-decoration:none; font:12px verdana; color:#FFF;"><?= nl2br($itens['imoPre']); ?></a></li> </ul> </li> <? } ?> </ul> </div> </div> <div class="rodape"> <? include("rodape.php"); ?> <?php include_once("analyticstracking.php") ?> </div> </body> </html> As funções abaixo define o conjunto de caracteres para a conexão atual (convertendo como está no banco de dados). Exemplos: mysql_set_charset('latin1',$conexao); mysql_set_charset('utf8',$link); ou conexão MySQLi: mysqli_set_charset('latin1',$conexao); mysqli_set_charset('utf8',$conexao); Esse problema geralmente ocorre quando você importa as tabelas para um novo banco que está com o chaset diferente do antigo. Se você acessar as tabelas diretamente no banco, também é visualizado o texto com essas modificações nos caracteres? Caso esteja com as modificações de caracteres no texto direto no banco, você pode também refazer a importação do banco. No novo banco, modifique o charset para o mesmo do banco antigo antes de importar. Como o problema aparenta estar somente na tabela onde está esse texto, eu posso deleta-la e importa-la novamente (somente essa tabela)? Pois quando eu tempo importa sem deleta-la, aparece isso: http://prntscr.com/6mjgbm Atenciosamente, Eduardo Rissão 0 Quote Link to comment Share on other sites More sharing options...
Michael Posted March 28, 2015 Share Posted March 28, 2015 @Eduardo Rissao sim você pode deleta-la e importar novamente, sem fazer isso não vai ser possível importar mesmo a não ser que desse update, no mysql, mas é melhor excluir e importar... 0 Quote Link to comment Share on other sites More sharing options...
Anger Posted March 28, 2015 Share Posted March 28, 2015 Não, nem todos. Na página inicial, somente o que está com problema mesmo. Isso e as fotos, na galeria. Segue o código da index: <? session_start(); require_once "icontrol/_lib/icontrol.php"; require_once "icontrol/_lib/icontrol.pontualweb.php"; require_once "icontrol/_lib/conndb.php"; require_once "icontrol/_lib/functions.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="keywords" content="moveis, marcenaria, cozinhas, armarios, planejados"> <meta name="description" content="A GR Móveis Planejados é atualmente uma das principais fabricantes de móveis planejados do interior paulista. Com equipamentos de última geração e tecnologia de ponta, a GR utiliza materiais que atendem aos mais exigentes padrões de qualidade do mercado, prezando por um acabamento impecável!"> <title>GR Móveis Planejados</title> <link href="estrutura.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> </head> <body> <div class="topo"><img src="imagens/logo.jpg" width="984" height="199" /></div> <div class="menu" align="center"> <? include("menu.php"); ?> </div> <div class="banner1"> <? include('banner.php'); ?> <br /> <? $sqlHome = "select * from imovel where imoInterna = 'S' order by imoCodigo desc limit 2"; $qryHome = mysql_query($sqlHome); ?> <div style="width:954px; margin:auto;"> <ul style="list-style:none; padding:0px; margin:0;"> <? while ($itens = mysql_fetch_assoc($qryHome)) { ?> <li style="display:inline-block; background-image:url(imagens/sombraHome.png); width:475px; height:277px; position:relative;"> <div style="height:25px; padding:10px; text-align:left; font:16px verdana; color:#FFF;"><a href="internas.php?cod=<?= $itens['imoCodigo']; ?>" style="text-decoration:none; font:16px verdana; color:#FFF;"><?= $itens['imoNome']; ?></a></div> <ul style="list-style:none; padding:0px 10px; margin:0;"> <? $sql = "select * from fotos where imoCodigo = {$itens['imoCodigo']} limit 1"; $qry = mysql_query($sql); while($apreFotoP = mysql_fetch_assoc($qry)) { $i++; if (vrfExtensao('imagem', 'web/imagens/produtos/site/miniaturas/', $apreFotoP['imoCodigo'] . '_' . $apreFotoP['fotCodigo']) == true) { $miniatura = $img; list($w, $h) = getimagesize($miniatura); $image_file = $miniatura; $targetfile = "maskara/maskara" . $apreFotoP['imoCodigo'].$apreFotoP['fotCodigo'] .".jpg"; $photo = imagecreatefromjpeg($image_file); $fotoW = 165; $fotoH = 165; $photoFrame = imagecreatetruecolor($fotoW,$fotoH); $dest_x = ($w - $fotoW) / 2; $dest_y = ($h - $fotoH) / 2; imagecopy($photoFrame, $photo, 0, 0, $dest_x, $dest_y, $fotoW, $fotoH); imagejpeg($photoFrame, $targetfile); ?> <li style="display:inline-block; width:170px;"><a href="internas.php?cod=<?= $itens['imoCodigo']; ?>"><img src='<?= $targetfile; ?>' border="0"/></a></li> <? unset($targetfile); } } ?> <li style="display:inline-block; width:280px; font:12px verdana; color:#FFF; vertical-align:top; text-align:left;"><a href="internas.php?cod=<?= $itens['imoCodigo']; ?>" style="text-decoration:none; font:12px verdana; color:#FFF;"><?= nl2br($itens['imoPre']); ?></a></li> </ul> </li> <? } ?> </ul> </div> </div> <div class="rodape"> <? include("rodape.php"); ?> <?php include_once("analyticstracking.php") ?> </div> </body> </html> Como o problema aparenta estar somente na tabela onde está esse texto, eu posso deleta-la e importa-la novamente (somente essa tabela)? Pois quando eu tempo importa sem deleta-la, aparece isso: http://prntscr.com/6mjgbm Atenciosamente, Eduardo Rissão Se o problema vem só nos textos que são puxados pelo banco de dados, realizar a função que o @Michael recomendou deve corrigir. Se outras partes estão com problemas, tente deletar e importar conforme comentaste. Caso não dê, pode ter problemas nas strings, tipo uma interferência, do seu site. 0 Quote Ajude o fórum! Antes de postar, leiam as regras de postagem aqui. Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.