Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Estou com problemas com acentuações quando vou gerar meu pdf.
Seque código:
$sql = mysql_query("SELECT * FROM tab_agricultores WHERE id = '$id'")or die(mysql_error());
$result = mysql_fetch_array($sql);
$html.='<table width="657" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="384"><strong>DADOS DE CADASTRO</strong><br />
<span class="textos"><strong>Data de Cadastro:</strong> '.$result['data_cadastro'].'</span><br />
<span class="textos"><strong>Cadastrador:</strong> '.$result['cadastrador'].'</span><br />
<span class="textos"><strong>Gerado em :</strong> '.date('d/m/Y').' </span></td>
<td width="52" align="right"><img src="img/header.jpg" width="230" height="70"></td>
</tr>
</table>
<hr />
<h2><table align="center"><tr><td width="384"><strong>Dados do Agricultor</strong></td></tr></table></h2>
<div id="dados">
<p><strong>Nome:</strong> '.$result['nome'].'</strong> <strong>Apelido:</strong> '.$result['apelido'].'</p>
<p><strong>Cpf:</strong> '.$result['cpf'].' <strong>Rg:</strong> '.$result['rg'].'</p>
<p><strong>Data Nascimento:</strong> '.$result['data_nascimento'].'</p>
<p><strong>Sexo:</strong> '.$result['sexo'].'</p>
<p><strong>Membros: </strong>'.$result['membros'].'</p>
<hr />
<div id="dados">
<p><strong>Nome:</strong> '.$result['nome'].'</strong> <strong>Apelido:</strong> '.$result['apelido'].'</p>
<p><strong>Cpf:</strong> '.$result['cpf'].' <strong>Rg:</strong> '.$result['rg'].'</p>
<p><strong>Data Nascimento:</strong> '.$result['data_nascimento'].'</p>
<p><strong>Sexo:</strong> '.$result['sexo'].'</p>
<p><strong>Membros: </strong>'.$result['membros'].'</p>
</html>';
$html = utf8_decode($html);//decodificando o tipo de charset do documento
Veja que o corpo do pdf gerado esta sendo decodificado para utf_decode, só que o resultado da consulta não está sendo decodificado fica assim Ant?nio.quando tento decodificar com header("Content-Type: text/html; charset=ISO-8859-1"); ele decodifica o resultado da consulta mais os campos do corpo($html) fica sem aceitar caracteres especiais.
Abraço.
cara eu costumo usar os códigos html para fazer isso. porque de todas as formas que codifico a página e o banco e tudo mais acontece vez ou outra de dar esse problema e vejo até paginas de grandes sites supostamente codificada de forma correta apresentar esse problema tambem quando abro. por isso para alguns casos uso uma função para dar mudar "á" para "á" por exemplo.
Tentei a ini_set('default_charset','UTF-8');
mais não deu certo.
Qual voce ultiliza? é só substituir no texto?
eu tenho um formulario de contato que envia as mensagens para o meu email que quando eu rodava no meu site usando meu pc enviava tudo certo mas quando alguem me enviava de outro pc os acentos nao vinha direito. então criei uma função e faço a conversão apenas para o envio das mensagens mais ou menos assim
function codificado($texto){
$campo = $texto;
$campo = str_replace("á", "á", $campo);
$campo = str_replace("ã", "ã", $campo);
$campo = str_replace("â", "â", $campo);
$campo = str_replace("à", "à", $campo);
$campo = str_replace("é", "é", $campo);
$campo = str_replace("ê", "ê", $campo);
$campo = str_replace("í", "í", $campo);
$campo = str_replace("ó", "ó", $campo);
$campo = str_replace("õ", "õ", $campo);
$campo = str_replace("ô", "ô", $campo);
$campo = str_replace("ú", "ú", $campo);
$campo = str_replace("ç", "ç", $campo);
$campo = str_replace("Á", "Á", $campo);
$campo = str_replace("Ã", "Ã", $campo);
$campo = str_replace("Â", "Â", $campo);
$campo = str_replace("À", "À", $campo);
$campo = str_replace("É", "É", $campo);
$campo = str_replace("Ê", "Ê", $campo);
$campo = str_replace("Í", "Í", $campo);
$campo = str_replace("Ó", "Ó", $campo);
$campo = str_replace("Õ", "Õ", $campo);
$campo = str_replace("Ô", "Ô", $campo);
$campo = str_replace("Ú", "Ú", $campo);
$campo = str_replace("Ç", "Ç", $campo);
$campo = str_replace("\"", """, $campo);
return $campo;
}
$assunto = codificado($_POST["assunto"]);
$mensagem = codificado($_POST["mensagem"];
veja se consegue resolver>
eu tenho um formulario de contato que envia as mensagens para o meu email que quando eu rodava no meu site usando meu pc enviava tudo certo mas quando alguem me enviava de outro pc os acentos nao vinha direito. então criei uma função e faço a conversão apenas para o envio das mensagens mais ou menos assim
function codificado($texto){
$campo = $texto;
$campo = str_replace("á", "á", $campo);
$campo = str_replace("ã", "ã", $campo);
$campo = str_replace("â", "â", $campo);
$campo = str_replace("à", "à", $campo);
$campo = str_replace("é", "é", $campo);
$campo = str_replace("ê", "ê", $campo);
$campo = str_replace("í", "í", $campo);
$campo = str_replace("ó", "ó", $campo);
$campo = str_replace("õ", "õ", $campo);
$campo = str_replace("ô", "ô", $campo);
$campo = str_replace("ú", "ú", $campo);
$campo = str_replace("ç", "ç", $campo);
$campo = str_replace("Á", "Á", $campo);
$campo = str_replace("Ã", "Ã", $campo);
$campo = str_replace("Â", "Â", $campo);
$campo = str_replace("À", "À", $campo);
$campo = str_replace("É", "É", $campo);
$campo = str_replace("Ê", "Ê", $campo);
$campo = str_replace("Í", "Í", $campo);
$campo = str_replace("Ó", "Ó", $campo);
$campo = str_replace("Õ", "Õ", $campo);
$campo = str_replace("Ô", "Ô", $campo);
$campo = str_replace("Ú", "Ú", $campo);
$campo = str_replace("Ç", "Ç", $campo);
$campo = str_replace("\"", """, $campo);
return $campo;
}
$assunto = codificado($_POST["assunto"]);
$mensagem = codificado($_POST["mensagem"];
veja se consegue resolver
Valeu, Funcionou legal.
Abraço.
beleza mano :D
cara eu costumo usar os códigos html para fazer isso. porque de todas as formas que codifico a página e o banco e tudo mais acontece vez ou outra de dar esse problema e vejo até paginas de grandes sites supostamente codificada de forma correta apresentar esse problema tambem quando abro. por isso para alguns casos uso uma função para dar mudar "á" para "á" por exemplo.