Ir para conteúdo

Featured Replies

Postado

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

Postado

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.

Postado
  • Autor

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...?

Postado

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.


 

Postado

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');
Postado
  • Autor

 

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

Postado
  • Autor

@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

Postado

@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...

Postado

 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.

Ajude o fórum! Antes de postar, leiam as regras de postagem aqui.

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.
Nota: Sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Concorda com os nossos termos?