Ir para conteúdo

POWERED BY:

Arquivado

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

Janelee

Charset funciona no IE nas não no Firefox.

Recommended Posts

Acontece o seguinte.

Tenho um site normal e um painel administrativo. Tudo isso em php.

No painel administrativo tudo funciona normal, em todos os navegadores.

 

Mas ao fazer uma exibição desses dados na pagina normal, que o publico terá acesso há problemas de acentuação.

tanto o banco de dados quanto a pagina estão codificados em utf-8.

se eu coloco um utf8_encode, exibe normalmente no IE, mas não no firefox. Se eu retiro, funciona normal no firefox, mas não no IE.

tentei condificar as paginas em iso e ocorre o mesmo problema.

 

alguém sabe alguma outra maneira de solucionar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

segundo o seu relato

 

- banco de dados em UTF-8

- página em UTF-8 ( poderia explicar ? é referente ao charset HTML ou ao encode do editor de textos que escreveu o script ? )

 

- como está definido o charset na metatag html ?

 

- qual motivo ou razão para usar a função "utf8_encode" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

segundo o seu relato

 

- banco de dados em UTF-8

- página em UTF-8 ( poderia explicar ? é referente ao charset HTML ou ao encode do editor de textos que escreveu o script ? )

 

- como está definido o charset na metatag html ?

 

- qual motivo ou razão para usar a função "utf8_encode" ?

Eu sou bem iniciante. Então eu estava tentando aprender algumas coisas com o desenvolvedor web que tinha aqui na minha empresa. Como ele saiu, eu fiquei a ver navios.

Só que é mais ou menos assim, seguindo os passos que ele me falou.

- nas propriedades da pagina do DW (onde eu estou fazendo as paginas), coloca todos os encodes como utf-8. e pra que os acentos fiquem certinhos, usa utf8_encode que funciona.

em quase todas isso funcionou, MENOS na hora de exibir as notícias pro usuário que navega no site.

 

E todas as paginas são chamadas via ajax para a index, que está com charset utf8.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

não entendo porque só ali da problema :(

 

e desculpa a demora. tive uns projetos urgentes e problemas com internet. (:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo sem ele, eu continuo tendo problemas.

A questão é que sem ele os caracteres acentuados ficam com "?" no lugar se exibidos no IE. No Firefox funciona normal.

 

Se eu colocar o utf8_encode ele funciona normalmente no IE, mas no firefox os caracteres ficam estranhos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu coloquei em php pra ficar como iso-8859-1, e também não resolveu.

<? header("Content-Type: text/html;  charset=iso-8859-1",true); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no DREAMWEAVER você criar os arquivos em utf8??

se o arquivo está definido para iso e voc/~e simplesmente troca para uft8 vai dar errado mesmo...

 

você tem que criar o arquivo já codificado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ter N causas

dificil advinhar uma solução pro seu caso

 

reveja cada passo, faça testes em separado, enfim

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ter N causas

dificil advinhar uma solução pro seu caso

 

reveja cada passo, faça testes em separado, enfim

Fiz alguns testes, fiz algumas modificações e descobri que o problema só ocorre quando o título é acentuado, em todos os navegadores, menos no IE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acontece algo como isso?

 

Quartão -> Quartão

 

etc...

 

 

desenvolvi uma função para evitar esse problema independente do charset que você use;

 

a função é esta:

 

 

function removeracentos($textoacentuado){

$s = $textoacentuado;

 

$s = str_replace("á","á",$s);

$s = str_replace("â","â",$s);

$s = str_replace("à","à",$s);

$s = str_replace("ã","ã",$s);

$s = str_replace("ç","ç",$s);

$s = str_replace("é","é",$s);

$s = str_replace("ê","ê",$s);

$s = str_replace("í","í",$s);

$s = str_replace("ó","ó",$s);

$s = str_replace("ô","ô",$s);

$s = str_replace("õ","õ",$s);

$s = str_replace("ú","ú",$s);

$s = str_replace("ü","ü",$s);

 

$s = str_replace("Á","Á",$s);

$s = str_replace("Â","Â",$s);

$s = str_replace("À","À",$s);

$s = str_replace("Ã","Ã",$s);

$s = str_replace("Ç","Ç",$s);

$s = str_replace("É","É",$s);

$s = str_replace("Ê","Ê",$s);

$s = str_replace("Í","Í",$s);

$s = str_replace("Ó","Ó",$s);

$s = str_replace("Ô","Ô",$s);

$s = str_replace("Õ","Õ",$s);

$s = str_replace("Ú","Ú",$s);

$s = str_replace("Ü","Ü",$s);

 

return $semacentuacao = $s;

}

 

 

onde a função citada acima substitui os caracteres acentuados por seu respectivos na códificação HTML

essa função deve ser chamada antes de postar o dados no bd ou antes de exibi-los em uma página de preferência em ambos os casos

 

Modo de usar;

 

ex:

 

<?php

$str = "nação não você é ó ú ç";

echo removeracentos($str);

?>

pronto resolvido o problema todos os caracteres acentuados serão substituidos por suas seqüências de escape

como por exemplo a letra A acentuada com acento agudo seria substituida por Á e assim respectivamente

 

eliminamos assim o problema com charset da página

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.