Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiago j.a

[Resolvido] Acentos em php

Recommended Posts

Bom dia pessoal!

estou com um problema estranho, não sei se o local certo para postar esse tópico é nesta categoria, se não for, peço desculpas.

Tenho uma consulta, aonde tenho um link para imprimir essa consulta, até ai tdo bllz.

Quando abro essa tela de impressão, me da a consulta que já foi gerada na página anterior.

No internet explorer, ele não me da os acentos:

Exemplo: Visualização

Visualiza��o

no firefox ele imprime normal, eu andei testando em outros computadores, é sempre no I.E que da esse erro

quanto coloco na meta tag o utf-8, os códigos em php, que foram resultado da busca ele imprime errado, e os textos normais em html imprime certo, se coloco o iso-8859-1 ele faz o contrário, tentei com os dois mas não tive muito sucesso.

 

Desde já agradeço a todos pessoal!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

declare a codificação junto ao mime-type via header, via meta-tag, e imprima os acentos de acordo com a codificação

 

 

1. via header

<?php //ESTA DEVE SER A PRIMEIRA LINHA DO ARQUIVO
header('content-type: text/html; charset=iso-8859-1');

// agora pode vir o resto do código ;) 

 

2. via meta-tag

<!DOCTYPE ...
<html xmlns="...
   <head>
       <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
       <title>Minha página</title>
...
   </head>

   <body> ... </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloco essa meta tag no inicio da página, e o header logo quando iniciar o código em php?

exemplo:

<!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" />
<title>Untitled Document</title>
<link rel="StyleSheet" type="text/css" href="folhas.css">
</head>
<?php 
header('content-type: text/html; charset=iso-8859-1');

//linhas do código
?>
seria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

da forma que fiz, ele pega o 1º que foi colocado.

se coloco 1º o iso, ele imprime apenas os códigos em php corretamente, e se coloco 1º o utf-8, ele imprime corretamente apenas os códigos em html.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se em PHP for iso, em HTML TEM que ser iso...

 

se em PHP for utf, em HTML TEM que ser utf

 

o PHP passa o header para LEITURA do navegador. a meta-tag passa o charset para EXIBIÇÃO/ESCRITA do navegador

Compartilhar este post


Link para o post
Compartilhar em outros sites

se estiver codificando em UTF-8, e estiver com problemas em exibir dados acentuados no banco, passe os valores recebidos do banco pela função utf8_encode()

 

eu faço assim:

while(false !== ($row = mysql_fetch_assoc($sql,$conn))) {
   foreach($row as $key=>$value) $row[$key] = utf8_encode($value);
   # restante das instruções do loop
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, consegui arrumar o erro.

Eu passsava uma variavel para outra página pelo metodo get, variavel essa que seria impressa posteriormente neste página que iria abrir.

Após outras pesquisas no gooooooooOgle fiz o seguinte:

coloquei nas páginas:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
e quando recebia o valor do get, coloquei assim:

$page = htmlspecialchars($_GET['page']);
ao invés de apenas:

$page = $_GET['page'];
como estava fazendo, e para imprimir esta variavel fiz o seguinte:

<?php echo htmlentities($page); ?>
E funcionou perfeitamente, códigos php, e html, acentuados corretamente.

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Valeww a todos pela disponibilidade e ajuuuda!

AbraçoooO!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.