jose.rob.jr Postado Dezembro 16, 2006 Denunciar Share Postado Dezembro 16, 2006 Eu fiz um script está programado para rodar todos os dias 10h da noite pelo php-cgi.exeEle roda sem problemas, mas os caracéres estão saindo errado....operação por exemplo está aparecendo operaþÒoeu controlo o buffer no script. já tentei codificar o buffer para utf8 mas aí operação sai opera├º├úo <_<como eu faço pra corrigir isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Dezembro 16, 2006 Denunciar Share Postado Dezembro 16, 2006 Use ISO-8859-1 (pt-br-iso-8859-1). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Dezembro 16, 2006 Denunciar Share Postado Dezembro 16, 2006 As informações vêm de onde? De um banco de dados? Às vezes pode ser problema na codificação do banco.Além do ISO-8859-1 citado pelo ESerra, tente usar a função htmlentities() para exibir os dados na tela.[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jose.rob.jr Postado Dezembro 16, 2006 Autor Denunciar Share Postado Dezembro 16, 2006 Use ISO-8859-1 (pt-br-iso-8859-1).já to usando... mas sai daquela maneiraAs informações vêm de onde? De um banco de dados? Às vezes pode ser problema na codificação do banco.Além do ISO-8859-1 citado pelo ESerra, tente usar a função htmlentities() para exibir os dados na tela.[]'sdo proprio scriptcom o htmlentities() apareceu o código <_< (operação)vo postar a parteque estou usando pra testar...<?php //Calcular o tempo que a página leva para ser carregada $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $starttime = $mtime; if(!@$_SERVER["HTTP_USER_AGENT"]) define("BOT_MODE",true); else define("BOT_MODE",false); //Início do script function bot_say($buffer){ //esta função tem o objetivo de tentar corrigir o erro no prompt :) return $buffer; } function say($msg,$class=0,$last=0){ global $SAY_I, $SAY_V; if(!$SAY_I){ if(!BOT_MODE){ ob_start(); echo "<b>Aguarde... Estamos em operação. Não atualize nem cancele o carregamento da página. Caso contrário você não poderá acompanhar o que está acontecendo.</b>"; echo "<table border='1' class=\"atividade\"><tr><th>#</th><th>class</th><th>Registro</th></tr>"; ob_flush(); } else{ ob_start("bot_say"); print "Aguarde... Estamos em operação....\n"; ob_flush(); print "Não feche o prompt caso contrário você não poderá acompanhar o que está acontecendo.\n"; ob_flush(); print "# class Registro\n"; ob_flush(); } $SAY_I=1; if($SAY_V) $SAY_V++; else $SAY_V=1; } if($msg){ if(!BOT_MODE){ echo "<tr><td>$SAY_I</td><td>$class</td><td><p id=\"teste_foco{$SAY_V}$SAY_V\">$msg</p></td></tr>";$SAY_I++; ob_flush(); } else{ print "$SAY_I $class $msg"; ob_flush(); } } if($last){ if(!BOT_MODE){ echo "<tr><td colspan=\"3\"><b><u>Finalizado</u></b></td></tr>"; echo "</table>"; } else{ print "Finalizado"; } ob_end_flush(); unset($SAY_I); } } say("Teste"); exit; ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Dezembro 16, 2006 Denunciar Share Postado Dezembro 16, 2006 Tente trocar os caracteres especiais pela forma HTML:operação -> operaçãoCostumo sempre fazer assim, para evitar problemas.[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jose.rob.jr Postado Dezembro 16, 2006 Autor Denunciar Share Postado Dezembro 16, 2006 Tente trocar os caracteres especiais pela forma HTML:operação -> operaçãoCostumo sempre fazer assim, para evitar problemas.[]'sO htmlentities() faz isso....eu tentei assim:function bot_say($buffer){ //esta função tem o objetivo de tentar corrigir o erro no prompt :) return htmlentities($buffer); } mas não deu certo... a saida que normalmente vai pro browser vai direto pro prompt, só o php é interpretado... ex: <? echo htmlentities("Ação"); ?>saida:AçãoAparece no browser:AçãoAparece no prompt:Ação <_< Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jose.rob.jr Postado Dezembro 16, 2006 Autor Denunciar Share Postado Dezembro 16, 2006 Descobri uma maneira!!!!!só não é muito simples, mas ajuda muito! :Dse você editar um arquivo de texto no ms-dos, a codificação automaticamente será a do ms-dos. então eu vo criar um arquivo de texto só com acentos e salvar, ai eu abro no bloco de notas e vai aparecer o carctére errado, se eu colocar este caractére errado no lugar do certo no codigo, no prompt vai aparecer o certo :Dex:C:\edit acentos.txtç[alt][a][alt][a][r]ai, abre o explorer, vai no C:\ abre o acentos.txt e vai aparecer:‡se no código trocar ç por ‡, no prompt aparece ç :)ai é só trabalhar isso no php[edit]formei uma lista, quem quiser, seve para batch também:á= à=… ã=Æ ä=„ â=ƒ Á=µ À=· Ã=Ç Ä=Ž Â=¶ é=‚ è=Š ë=‰ ê=ˆ É= È=Ô Ë=Ó Ê=Ò í=¡ ì= ï=‹ î=Œ Í=Ö Ì=Þ Ï=Ø Î=× ó=¢ ò=• õ=ä ö=” ô=“ Ó=à Ò=ã Õ=å Ö=™ Ô=â ú=£ ù=— ü= û=– Ú=é Ù=ë Ü=š Û=ê ç=‡ Ç=€ §=õ ¹=û ²=ý ³=ü £=œ ¢=½ ¬=ª º=§ ª=¦ º=ø[edit2]a função bot_say() ficou igual a função dos_encode() Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jose.rob.jr
Eu fiz um script está programado para rodar todos os dias 10h da noite pelo php-cgi.exe
Ele roda sem problemas, mas os caracéres estão saindo errado....
operação por exemplo está aparecendo operaþÒo
eu controlo o buffer no script. já tentei codificar o buffer para utf8 mas aí operação sai opera├º├úo <_<
como eu faço pra corrigir isso?
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.