Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Velho problema do CHARSET, mas já tentei umas coisas e não está funcionando.
Eu tenho um arquivo chamado "func.listagem.php" que é um grupo de funções. Exemplo do conteúdo:
<?php
function usuariosListar(){
echo "<h1>LISTAGEM DE USUÁRIOS</h1>";
..
..
..
}
..
..
..
?>
E outro arquivo que criei chamado de "teste.php" tem dentro o seguinte:
<?php
function teste(){
echo "<h1>AÇÃO PADRÃO</h1>";
..
..
..
}
?>
Na página INDEX.PHP eu dou include desses 2 arquivos e quando eu chamo a função "usuariosListar()" ele exibe o charset de forma normal, tudo correto. Mas quando eu chamo a função "teste()" o charset sai todo errado, no estilo UTF-8.
A página index.php está definido com charset iso-8859-1 e exibe normal os caracteres, mas em alguns arquivos de funções ele está dando esse problema.
Já utilizei o header pra definir o charset dentro do arquivo "teste.php", tentei tbm dentro da função de teste() e também no arquivo index.php, e continua exibindo errado.
Alguma sugestão a mais?
Ou use o htmlentities()
veja como funciona no php.net
=)
Se tiver
o comando echo ou print no seu script usa utf8_encode() e utf8_decode()
O que eu não entendo é que 2 arquivos diferentes, mas dentro das mesmas condições, estão exibindo o texto com charset diferentes.
Até entendeo que posso utilizar desses artifícios das funções para ajustá-los, mas o que está me deixando confuso é isto de 2 arquivos seguindo os mesmos padrões e eles serem de charset diferentes, onde nenhum deles tem nada informando isso.
Molin, prefiro usar o 8859.
Alguém teria uma explicação?
>
O que eu não entendo é que 2 arquivos diferentes, mas dentro das mesmas condições, estão exibindo o texto com charset diferentes.
Até entendeo que posso utilizar desses artifícios das funções para ajustá-los, mas o que está me deixando confuso é isto de 2 arquivos seguindo os mesmos padrões e eles serem de charset diferentes, onde nenhum deles tem nada informando isso.
Molin, prefiro usar o 8859.
Alguém teria uma explicação?
não vi seu código mais pode ser o seguinte
um deve redirecionar com um get de mensagem, e o outro deve printar algo na tela como um alert
alguns navegadores lê esses dois comandos de forma diferente, por exemplo o Google Chrome
bom pra você resolver isso
você pode criar uma variavel assim e depois jogar pra printar:
<?
$msg = utf8_encode("isso é um texto de exemplo com vários acentos ou não?"); // usei o encode, mais:
/* pode usar decod,e ou encode, ou os dois:
encode dentro de decode ou vice e versa */
echo "
<script>
if(confirm('".$msg."')){
location.href='index.php?msg=".$msg."';
}esle{
alert('".$msg."<br /> Resposta: não é');
location.href='index.php';
</script>
";
?>Tem algum motivo específico Diego para usar ISO em vez de UTF?
Verifique a codificação dos próprios arquivos fonte.
Molin, acho mais fácil.
Rafael e Jaime, não tem nada definido nos arquivos de funções a respeito de charset, apenas no INDEX que é definido pelo HTML e o menu do arquivo INDEX está funcionando perfeitamente o charset, mas quando eu dou o include dos arquivos de funções "usuarios" o charset funciona normalmente, mas quando eu chamei o "teste" ele ta exibindo de forma errada, como se fosse UTF-8 e não tem nada além de uma função simples dando um "echo" em uma frase com acentuação e Ç.
Se fosse "mais fácil", esses problemas não estariam ocorrendo ;). #ficadica.
Verifica o que o jaime disse, a codificação dos arquivos php
No Dreamweaver dá pra apertar Ctrl + J , ir até "Title encoding" e colocar a codificação da página.
Na verdade eu uso Zend Studio que da pra acessar via propriedades no botão direito do mouse.
Já tive esse mesmo problema seu e resolvi assim.
Tenta tirar o h1, se não der certo usa o utf8_decode();
pode ser uma falha no comando echo, com algumas tags html
Padronize tudo para UTF-8.