Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Macêdo

Charset no PHP

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>
";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 Ç.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

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.