Ir para conteúdo
  • Cadastre-se

Ajuda Acentuação


Posts Recomendados

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

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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.


 

Link para o comentário
Compartilhar em outros sites

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');
Link para o comentário
Compartilhar em outros sites

 

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

Link para o comentário
Compartilhar em outros sites

@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

Link para o comentário
Compartilhar em outros sites

 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.

Link para o comentário
Compartilhar em outros sites

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.

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?