Videres 3 Denunciar post Postado Março 8, 2012 Boa tarde Pessoal, Estou com um problema que ja encontrei muitas pessoas com dificuldades em minhas pesquisas... uma boa parte delas conseguiram resolver... mas tentei usar o mesmo metodo e não funfou... Entao vamos la... Minha dificuldade esta no uso do HEADER dentro do meu codigo pHP para n retornar caracteres "estranhos", com interrogacao ou caracteres dessa forma -> Ã... Tentei resolver da seguinte forma: <?php ob_start(); header("Content-Type: text/html; charset=ISO-8859-1",true); ?> Tanto usando com o "ob_start();" ou n.. so consegui fazer funcionar no meu servidor local (xamp).. Quando passo para o web resulta no seguinte erro: Cannot modify header information - headers already sent by Obs.: Esse erro so acontece quando insiro o codigo a cima do header, porem quando n insiro os caracteres aparecem com interrogacoes, visto q todo o conteudo da minha pagina esta vindo do banco... Ja tentei colocar no Header da minha pagina a tag: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> mas como estou pegando o texto do banco com o formato UTF 8.. para remover interrogacoes teria q fazer com que o valor retornado pelo php virasse ISO-8859-1 por isso usei o header a cima... So no servido web q n esta funcionando... se alguem puder me ajudar fico agradecido... abraço :grin: Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Março 8, 2012 mas como estou pegando o texto do banco com o formato UTF 8.. para remover interrogacoes teria q fazer com que o valor retornado pelo php virasse ISO-8859-1 por isso usei o header a cima... So no servido web q n esta funcionando... se alguem puder me ajudar fico agradecido... abraço :grin: Hein? Usar um header dizendo que o conteúdo da página é iso não vai fazer com que o conteúdo em utf8 seja convertido de forma "milagrosa", para isto existe o utf8_encode e utf8_decode. Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Março 8, 2012 A mensagem "Cannot modify header information - headers already sent by" significa que o header já foi enviado. Para corrigir o problema da codificação, insira entre a tag head do html isso: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> E no banco de dados: Character set = latin1 -- cp1252 West European Collation: latin1_general_cs Compartilhar este post Link para o post Compartilhar em outros sites
criatividade zero 17 Denunciar post Postado Março 8, 2012 :huh: se o banco é UTF, pq você mete um meta ISO??? Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Março 8, 2012 Aparentemente tem uma linha em branco antes do <?php... remova-a e vai funcionar... Compartilhar este post Link para o post Compartilhar em outros sites
Videres 3 Denunciar post Postado Março 12, 2012 Aparentemente tem uma linha em branco antes do <?php... remova-a e vai funcionar... Henrique, Fiquei ate feliz, achando q isso resolveria mas n funcionou... So pra deixar mais claro eu to conseguindo fazer a consulta normalmente, ele exibe o resultado da consulta... Meu unico problema é quando utilizo o codigo a cima para alterar o "header" q ele dar a mensagem de erro a cima... Estou pesquisando a respeito... acredito q deve ser alguma coisa q estou me esquecendo!!! Fico agradecido desde já, pela força! :huh: se o banco é UTF, pq você mete um meta ISO??? o banco todo esta em UF8_unicode... com isso estou sofrendo problema nos navegadores q caracteres com acentos aparecem interrogações (?)... por i sso esto convertendo o resultado da consulta q exibira em minha pagina em ISO... Testando com wamp.. funcionou perfeitamente o codigo a cima... Mas no servidor WEB estou tendo dificuldade... ainda n sei o motivo... ehhehee Mas fico agradecido desde ja pela força... srsrsrsr Hein? Usar um header dizendo que o conteúdo da página é iso não vai fazer com que o conteúdo em utf8 seja convertido de forma "milagrosa", para isto existe o utf8_encode e utf8_decode. Tentei dar uma olhada mas no meu servidor local... ele n oferece a UTF8_DECODE... Mas vou verificar isso.... vlws ESerra! .. Abss Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Março 12, 2012 Tentei dar uma olhada mas no meu servidor local... ele n oferece a UTF8_DECODE... Esta é uma função nativa do PHP a muito tempo... Compartilhar este post Link para o post Compartilhar em outros sites
criatividade zero 17 Denunciar post Postado Março 12, 2012 o banco todo esta em UF8_unicode... com isso estou sofrendo problema nos navegadores q caracteres com acentos aparecem interrogações (?)... por i sso esto convertendo o resultado da consulta q exibira em minha pagina em ISO... Testando com wamp.. funcionou perfeitamente o codigo a cima... Mas no servidor WEB estou tendo dificuldade... ainda n sei o motivo... ehhehee Mas fico agradecido desde ja pela força... srsrsrsr veja se isso resolve... mysql_query("SET NAMES 'utf8'"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_results=utf8"); Compartilhar este post Link para o post Compartilhar em outros sites
Videres 3 Denunciar post Postado Março 13, 2012 veja se isso resolve... mysql_query("SET NAMES 'utf8'"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_results=utf8"); Pow Criatividade... no meu servidor local funfou FILEUZIS... Assim q testar no WEb posto aqui... Acredito q essa seja a ssolucao mais adequada ja q a W3C recomenda trabalhar com o charset UTF8... Assim n vou precisar usar o ISO... Assim q testar volto a postar.. vlws \o Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Março 13, 2012 Para a finalidade de alterar o charset, é recomendável utilizar a função mysql_set_charset ao invés de mysql_query. Ambas vão fazer a mesma coisa, entretanto, para tal finalidade, não é recomendado mysql_query. Caso queira ver a lista de charset suportados pelo mysql Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Março 13, 2012 Antes deste arquivo que seta o header você faz inclusão de algum outro? Verifique em todos os arquivos PHP e remova as tags "?>" do final. Isso pode ajudar. Certifique-se também de garantir que os arquivos php comecem com "<?" exatamente na primeira linha e primeira coluna do arquivo. Certifique-se de ter salvo todos os arquivos com a marcação "SEM BOM". Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Março 13, 2012 Certifique-se de ter salvo todos os arquivos com a marcação "SEM BOM". Isso é bem importante cuidar, editores como o Dreamweaver, deixam como padrão o BOM. Já o outros editores deixam como padrão sem BOM. Eu utilizo o phpDesigner, e ele oferece configurações para sempre alterar a codificação do arquivo ao salvar. Já outras IDE podem não oferecer esse possibilidade, já que pode ser, ou não, habilitada nas configurações. Compartilhar este post Link para o post Compartilhar em outros sites
Videres 3 Denunciar post Postado Março 15, 2012 veja se isso resolve... mysql_query("SET NAMES 'utf8'"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_results=utf8"); Oi criatividade tentei fazer oq você me sugeriu e no meu servidor local funfou 100% ... mas no web deu um erro... como estou trabalhando no meu servidor com postgreSQL... Tentei substituir mysql_query por pg_query Deu o seguinte erro: Query failed: ERROR: unrecognized configuration parameter "character_set_connection" Se alguem puder me dar uma orientacao fico agradecido... Estou pesquisando a respeito em breve estarei postando a forma q funcionou... xD Abracos Antes deste arquivo que seta o header você faz inclusão de algum outro? Verifique em todos os arquivos PHP e remova as tags "?>" do final. Isso pode ajudar. Certifique-se também de garantir que os arquivos php comecem com "<?" exatamente na primeira linha e primeira coluna do arquivo. Certifique-se de ter salvo todos os arquivos com a marcação "SEM BOM". Em relacao ao BOM esta tudo ok.. Vlws pela dica! =D Compartilhar este post Link para o post Compartilhar em outros sites
Videres 3 Denunciar post Postado Março 21, 2012 Boa tarde pessoal, Retornando novamente esse topico com a solucao adotada... ehhehe No final das contas eu usei tanto dentro do codigo PHP header("Content-Type: text/html; charset=ISO-8859-1",true); que acredito q tenha gerado desse erro... Cannot modify header information - headers already sent by Quando seguir a Sugestao do Criatividade pude remover todos esses header("Content-Type: text/html; charset=ISO-8859-1",true); inseridos na minha pagina.. deixando apenas a <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> funcionou file no servidor local, porem no web deu pau.. Quando removi o que o criatividade indicou: mysql_query("SET NAMES 'utf8'"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_results=utf8"); Funcionou perfect... so com as metas deu para resolver o error... porem tinha colocado tanto header("Content-Type: text/html; charset=ISO-8859-1",true); que acredito q tenha causado o erro... Como sei q isso é uma duvida recorrente espero que esse post possa ajudar outras pessoas q tenha passado por uma situacao parecida! Sou muito grato pela cooperacao de vcs... abraço :clap: Compartilhar este post Link para o post Compartilhar em outros sites