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

Problemas Com Acentos Na Consulta!


rockbilly

Pergunta

Olá forum,

estou tendo problemas na consulta num BD SQL SERVER, lá no banco tá com acento e os acentos la´funcionam beleza, o problema é que quando puxo os dados de lá... os acentos vem com caracteres loucos, alguém já passou por isso e sabe como resolver este problemão? a consulta vem assim, reparem no VÍDEO G-FORCE4 e em MEMÓRIA e placa MÃE entre outros:

000000 INEXISTENTE

124514 AMPLIFICADORES PARA SOM DE COMPUTADOR

568930 PLACA DE VÖDEO G-FORCE4 128MBS DE MEMàRIA

254133 PLACA ACELERADORA RADEOM 9000

458714 PLACA DE REDE 3COM 100/10 MBS

458914 MSI PLACA MÇE GTYRT5

586630 FAX-MODEM 3COM 56K FLEX

565433 CD-ROM 56X MARCA SAMSUNG

alguém poderia me dar uma luz se possivel, obrigado!

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

/* O negócio é o seguinte em principio isso é probleam com driver pois bancos como access aceitam acentos etc mais o mysql deve existir o ODBC , portém tente contornar com isso

function acentohtml($text) {
global $export;
$search = array ('ç', 'á', 'é', 'í', 'ó', 'ú', 'ã', 'õ', 'â', 'ê', 'î',
'ô', 'û', 'Ç', 'Á', 'É', 'Í', 'Ó', 'Ú', 'Ã', 'Õ', 'Â', 'Ê', 'Î', 'Ô', 'Û');
$replace = array ('ç', 'á', 'é', 'í',
'ó', 'ú', 'ã', 'õ', 'â', 'ê',
'î', 'ô', 'û', 'Ç', 'Á', 'É',
'Í', 'Ó', 'Ú', 'Ã', 'Õ', 'Â',
'Ê', 'Î', 'Ô', 'Û');
$export = str_replace($search, $replace, $text);
return $export;
}

isso é uma função que pode corrigir tenta ai

PS leia isso também

Leia

*/

Link para o comentário
Compartilhar em outros sites

  • 0

Gladiador, antes de tudo obrigado por postar. O problema que meu server é um SQL SERVER. eu fiz uma função parecida com esta tb para burlar esse problema, mas o que não entendo é que no BANCO está tudo normal, com acento e tudo, mas quando puxo para mostrar, vem com caracteres estranhos no acento. ohmy.gifsad.gifhuh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Gladiador, antes de tudo obrigado por postar. O problema que meu  server é um SQL SERVER. eu fiz uma função parecida com esta tb para burlar esse problema, mas o que não entendo é que no BANCO está tudo normal, com acento e tudo, mas quando  puxo para mostrar, vem com caracteres estranhos no acento. ohmy.gif  sad.gif  huh.gif

Então...a função dele é justo pra ficarem os caracteres html...

Também tem essa(mais completa):

<?
function str_sem_acento($REMOVE_ACENTOS)
{
$REMOVE_ACENTOS = str_replace( "à", "&agrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "á", "&aacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "â", "&acirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ã", "&atilde;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ä", "&auml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "è", "&egrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "é", "&eacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ê", "&ecirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ë", "&euml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "ì", "&igrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "í", "&iacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "î", "&icirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ï", "&iuml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "ò", "&ograve;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ó", "&oacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ô", "&ocirc", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "õ", "&otilde;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ö", "&ouml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "ù", "&ugrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ú", "&ugrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "û", "&ucirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "ü", "&uuml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "À", "&Agrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Á", "&Aacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Â", "&Acirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ã", "&Atilde;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ä", "&Auml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "È", "&Egrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "É", "&Eacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ê", "&Ecirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ë", "&Euml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "Ì", "&Igrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Í", "&Iacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Î", "&Icirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ï", "&Iuml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "Ò", "&Ograve;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ó", "&Oacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ô", "&Ocirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Õ", "&Otilde;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ö", "&Ouml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "Ù", "&Ugrave;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ú", "&Uacute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Û", "&Ucirc;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ü", "&Uuml;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "ç", "&ccedil;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "Ç", "&Ccedil;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "não", "&ntilde;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "não", "&Ntilde;", $REMOVE_ACENTOS);

$REMOVE_ACENTOS = str_replace( "´", "&acute;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "`", "`", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "¨", "&uml;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "^", "&circ;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "~", "&tilde;", $REMOVE_ACENTOS);
$REMOVE_ACENTOS = str_replace( "\"", "&quot;", $REMOVE_ACENTOS);
return $REMOVE_ACENTOS;
}
?>

Ela retorna os caracteres acentuados como caracteres HTML...Ae é só você fazer que nem:

$texto ="Olá ! Têm pessoas que gostam dessa função !";

$texto = str_sem_acento($texto); //chama a função. não se esqueça de incluí-la

echo $texto;

Ae , se você vir no código fonte, vai estar assim:

Ol&aacute; ! T&ecirc;m pessoas que gostam dessa fun&ccedil;&atilde;

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

jonh, beleza?

O problema é que quando no BD existe um PALAVRA COM "Ã", ou seja, um "A" com o til, ele transforma tudo em "Ç", dai na função peço para substituir o "Ç" por "Ã", dai ele substitui todos os Ccedinha por "Ã". Fiz pelo ASP e os dados são mostrados como aparece no BD, mas no PHP está ocorrendo isso.... sinceramente não sei como resolver pelo PHP.... ohmy.gifhuh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Eu creio que o problema é com o PHP, fiz em ASP e tá tudo normal... sinceramente não sei mais o que fazer! Já recorri auxilio de tudo quanto foi forum no brasil e acho q quase ninguém passou por este problema, por isso a escassez de help com este determinado problema, mas a esperança é a ultima...

segui o código:

<?php

function acen($str)

{

$str = eregi_replace("[ÁÃ]","A",$str);

$str = eregi_replace("[É]","E",$str);

$str = eregi_replace("[Í]","I",$str);

$str = eregi_replace("[ÓÕ]","O",$str);

$str = eregi_replace("[Ú]","U",$str);

$str = eregi_replace("[€]","Ç",$str);

return($str);

}

require("conecta.php");

$SQL = mssql_query("SELECT * FROM tabela")or die("FALHA CONSULTA!");

$row = mssql_num_rows($SQL);

   echo "<table border=1 cellpadding=0 cellspacing=0>";

   echo "<tr align=center>";

   echo "<td><b><font face=arial size=2>PROJETO</font></b></td>";

   echo "<td><b><font face=arial size=2>DESCRIÇÃO</font></b></td>";

   echo "</tr>";

while ($line = mssql_fetch_array($SQL))

  {

   echo "<tr align=center>";

   echo "<td><font face=arial size=2>".acen($line['codigoElemento'])."</font></td>";

   echo "<td><font face=arial size=2>".acen($line['descricao'])."</font></td>";

   echo "</tr>";

  }

echo "</table>";

require("fecha.php");

echo "<br>";

echo "<B>TOTAL: ".$row;

?>

Grato a todos!

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, conseguiii resolver, precisa colocar a codificação de caracteres no charset:

setlocale(LC_ALL, "pt_BR");
header('Content-type: text/html; charset=cp850');

bom, fica aí para quem precisar e passar por este apuros... Pois já estava partindo para ter que fazer o site em ASP, pois o chefe ficou no meu pé na pressão... unsure.gif

Obrigado pela atenção de vocês, vlw mesmo!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Gustavo -

RockBilly você é realmente um gênio!

Tive exatamente o mesmo problema que você a algum tempo atrás e ninguém sabia resolver a questão, davam dicas que não funcionavam e nem fóruns do exterior que eu procurei sabiam responder, principalmente porque muitos deles eram em inglês e eles não usam acentos.

Tive que abandonar o problema sem ter encontrado a solução, mas agora finalmente vou poder ajustar o programa! Muito obrigado por ter deixado a solução para outros programadores poderem acertar seus programas!

Valeu mesmo!

biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Gente,

Algo que você pode tentar é converter a string usando a função:

utf8_decode(string string);

Essa função converte uma string com caracteres ISO-8859-1 codificadas com UTF-8 para single-byte ISO-8859-1, ou seja, o charset que nós utilizamos em português.

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,2k
    • Posts
      652k
×
×
  • Criar Novo...