erro de acentuação no firefox - Fórum CodigosnaWeb.com
Você recebeu uma nova MP, clique aqui


erro de acentuação no firefox

Assista vídeos sobre erro de acentuação no firefox • Busque diretamente no Youtube

Fórum sobre: JavaScript, XML, AJAX e jQuery

Moderador: web

Logar para Responder
Logar para Perguntar

 erro de acentuação no firefox em 18 Jun 2007 14:11

Usuário offline impossivel
237 post(s)
SUPER VETERANO  Masculino
15 ponto(s)

olá, tenho um script que trabalha com ajax, depois de alguma luta foi encontrado uma maneira de corrigir os erros de acentuação.
então o script esta funcionando legal, ate agora...

tenho um campo de busca, que joga o valor pesquisado para um script, este por sua vez executa uma função ajax e carrega uma pagina.php com os resultados da busca. os dados são transferidos por GET, o problema é que no ff esta dando erro, ex. qdo faço uma busca tipo..

céu = céu
são = são
avó = avó
vô = vô
açúcar = açúcar


ja no ie7.0 funciona legal, qdo faço a busca pelo ff ele apresenta os erros, mas estranho que é só no valor enviado com acentos. Qdo nao tem acento no valor enviado, entao não tem erro, mesmo que o resultado da busca contenha acento ele mostra perfeito.

ex, se procurar por .. "fui na casa da vov"
ele encontra e exibe perfeitamente "fui na casa da vovó"
mas se passar o valor "vovó", então dá erro nos acentos. ou seja, o erro esta na transferencia os dados pela GET.

eu pensei em codificar os valores na pagina de pesquisa e decodificar na pagina de resultados, com links eu testei e e funciona, mas no formulário é diferente

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
function busca(){
// campos do formulário
var valor = document.busca.valor.value;
 
//executa função que é abrir a página busca.php?valor=..(enviado pelo form)
xmlhttp.open('GET','busca.php?valor='+ valor +'');
xmlhttp.onreadystatechange=abc
xmlhttp.send(null)
}
..[continua]

é isto, como o valor é pego pelo formulario nao consigo criptografar ele isto seria o ideal. tem alguma ideia? preciso que o valor pego na pagina busca.php seja perfeito com acentou ou sem acento. Pensei em usar o
base64_encode($valor), mas nao sei como aplicar ele neste script.

consigo decodificar o valor na pagina busca.php, mas so consigo enviar o valor codificado atraves de links, como codifico o valor enviado por get atraves do formulario?

Obs. o erro so acontece esta acontecendo no ff, no ie o valor passa corretamente.



mais 0

7 resposta(s)

 erro de acentuação no firefox em 18 Jun 2007 21:09
Usuário offline web
15427 post(s)
ADMIN  Masculino
5159 ponto(s)
Fiz uns testes aqui, passando via AJAX por GET o seguinte link:
documento.php?valor=açucar

No arquivo documento.php, tenho o seguinte código:

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
<?php
// pega o navegador
$navegador $_SERVER['HTTP_USER_AGENT'];

// se navegador for IE
if(strstr($navegador'MSIE')==TRUE) {
header("Content-Type: text/html; charset=ISO-8859-1",true);
}

// se navegador for FF
if(strstr($navegador'Firefox')==TRUE) {
header("Content-Type: text/html; charset=UTF-8");
}

echo $_GET['valor'];
?>



mais 0


 erro de acentuação no firefox em 18 Jun 2007 22:02
Usuário offline impossivel
237 post(s)
SUPER VETERANO  Masculino
15 ponto(s)
oi, fiz vários testes aqui, este script funciona para mostras no navegador, mas a consulta no bd esta sendo feita pelo valor pego na GET e o FF esta passando este valor desconfigurado.

o ideial seria um script em javascript (ele envia a requisição) onde eu pudesse converter alguns caracteres igual ao php

PHP

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
$trans = array('á' => '&aacute;','à' => '&agrave;'); 

preciso fazer algo parecido aqui

JAVASCRIPT

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
function abre(){
 
// pega o "valor" no formulario
var valor = document.busca.valor.value;
 
//o "valor" tem que usar alguma string para substituir os caracteres com acentuação por outros que eu possa desconverter no busca.php, assim ele seria transportado corretamente
 
xmlhttp.open('GET','busca.php?valor='+ valor +'');

Ex.

á = %E1
ã = %E3
Á = %C1
à = %C3


se pudesse converter estes caracteres neste campo, entao nem preciso me preocupar em desconverter, pois os dois navegadores (IE e FF) reconhecem eles, são padrões.

enfim, o ideal seria isto, converter os caracteres ai ficaria

chá = ch%E1
são = s%E3o
Álvaro = %C1lvaro
SÃO = S%C3O


o ruim é que tem que pegar este caracter do formulario, converter e enviar, sem dar refresh na página, pegar e enviar eu já consigo, agora falta converter.


mais 0


 erro de acentuação no firefox em 18 Jun 2007 23:23
Usuário offline web
15427 post(s)
ADMIN  Masculino
5159 ponto(s)
Vê se essa função ajuda

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
<script type="text/javascript">
var valor="éóú"
valor = valor.replace(/é/, "É")
.replace(/ó/, "Ó")
.replace(/ú/, "Ú")
document.write(valor)
</script>


mais 0


 erro de acentuação no firefox em 18 Jun 2007 23:47
Usuário offline impossivel
237 post(s)
SUPER VETERANO  Masculino
15 ponto(s)
blz, agora funciona, ja mando os caracteres especiail de outra forma, aqu ta uma lista caso ais alguem precise

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
valor = valor.replace(/á/, "%E1")
.replace(/â/, "%E2")
.replace(/ã/, "%E3")
.replace(/Á/, "%C1")
.replace(/Â/, "%C2")
.replace(/Ã/, "%C3")
.replace(/É/, "%C9")
.replace(/é/, "%E9")
.replace(/ê/, "%EA")
.replace(/Í/, "%CD")
.replace(/í/, "%ED")
.replace(/Ó/, "%D3")
.replace(/Ô/, "%D4")
.replace(/Õ/, "%D5")
.replace(/ó/, "%F3")
.replace(/õ/, "%F5")
.replace(/ô/, "%F4")
.replace(/Ú/, "%DA")
.replace(/Ü/, "%DC")
.replace(/ú/, "%FA")
.replace(/ü/, "%FC")
.replace(/ç/, "%E7")
.replace(/Ç/, "%C7")

valeu web, show de bola


mais 1


 erro de acentuação no firefox em 18 Jun 2007 23:50
Usuário offline web
15427 post(s)
ADMIN  Masculino
5159 ponto(s)
boa ¨ohmygod¨


mais 0


 erro de acentuação no firefox em 21 Jun 2007 02:58
Usuário offline impossivel
237 post(s)
SUPER VETERANO  Masculino
15 ponto(s)
olá, ate entao estava resolvido, manda a acentuação em um formato que era interpretado corretamente pelos navegadores, mesmo por GET, sem erro.

porém encontrei uma falha, qdo busca por algum valor cujo caracteres especiais se repetem, ele apresenta erro.
ex. são joão
ai o script nao funciona, agora consegui um outro que praticamente resolve quase tudo isto. Caso mais alguém passe por este problema, vou deixar aqui a solução.

O escape()

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
<script type="text/javascript">
var valor = escape(document.busca.valor.value);
xmlhttp.open('GET','pagina.php?valor='+ valor +'');
..continua

só um problema, tem como enviar codigos html pelo formulario, então o codigo é executado na outra pagina.
se o cara postar <iframe src='sitetal.com.br'></iframe> o site é aberto.

ai pra resolver, usei um comando php na pagina que recebe o valor

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
$valor htmlspecialchars($_GET['valor']); 

pronto, agora todo tipo de caractere é enviado e nao tem risco de nenhum conflito ou perda de informação na pagina de resposta.
simples, manda usando o "escape()" (javascript) para corrigir a acentuação e recebe usando o "htmlspecialchars" (php) para retirar codigos html que podem ser maliciosos.


mais 0


 erro de acentuação no firefox em 21 Jun 2007 08:45
Usuário offline web
15427 post(s)
ADMIN  Masculino
5159 ponto(s)
¨1010¨


mais 0



 Busca Dinâmica

Clique em alguma palavra-chave para buscar, ou busque uma frase na caixa de pesquisa a seguir.

erro de acentuação no firefox




Logar para Responder
Logar para Perguntar




Voltar para JavaScript, XML e jQuery

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes

Servidores dedicados a R$450,00/Mensais

Ler o feed    Assinar o feed    CodigosnaWeb    CodigosnaWeb/forum    codigosnaweb HOTMAIL    Pousadas de Floripa