Clicky

Jump to content
  • Sign Up
Sign in to follow this  
Eduardo Rissao

Ajuda Acentuação

Recommended Posts

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

Share this post


Link to post
Share on other 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...?

Share this post


Link to post
Share on other 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.


 

Share this post


Link to post
Share on other 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');

WEBDESIGNER

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.




×
×
  • Create New...