Jump to content
Fórum Script Brasil
  • 0

Problemas Com Acentos Na Consulta!


rockbilly

Question

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 to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • 0

porque no meu apareceu isso?

Warning: Cannot modify header information - headers already sent by (output started at /home/jestt/www/site/index.php:13) in /home/jestt/www/site/index.php on line 15

Link to comment
Share on other sites

  • 0
Guest R.Duval

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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...