Ir para conteúdo
Fórum Script Brasil
  • 0

Charset


jose.rob.jr

Pergunta

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

  • 0

Use ISO-8859-1 (pt-br-iso-8859-1).

já to usando... mas sai daquela maneira

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

do proprio script

com o htmlentities() apareceu o código <_< (opera&ccedil;&atilde;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;
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Tente trocar os caracteres especiais pela forma HTML:

operação -> opera&ccedil;&atilde;o

Costumo sempre fazer assim, para evitar problemas.

[]'s

O 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&ccedil;&atilde;o

Aparece no browser:

Ação

Aparece no prompt:

A&ccedil;&atilde;o

<_<

Link para o comentário
Compartilhar em outros sites

  • 0

Descobri uma maneira!!!!!

só não é muito simples, mas ajuda muito! :D

se 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 :D

ex:

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()

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...