[Cascavel-pm] Problemas apenas nas requisições via ajax (caracteres com acentuação)

Luciano Giordani Bassani lgbassani em terra.com.br
Segunda Setembro 1 17:05:20 PDT 2008


Vão me xingar um monte por postar uma provável solução, mas...

Eu creio que mesmo que você force um charset iso, quando usa AJAX ou 
monta um formulário via Javascript, a requisição SEMPRE será feita em 
utf-8. Eu tenho este problema a muito tempo, mesmo antes de usar o AJAX, 
quando eu montava uma requisição somando vários forms de iframes. Mas 
não sei exatamente a teoria disso.
Não tenho como testar o teu código aqui, mas creio que algo assim 
resolveria:

$NOTICIA = $input{noticia};
$NOTICIA =~ 
s/([\xC0-\xDF])([\x80-\xBF])/chr(ord($1)<<6&0xC0|ord($2)&0x3F)/eg;

$query = "INSERT INTO `teste_noticia` VALUES('$NOTICIA')";
...

Resumindo, a regex ilegível à cima faz tudo (não sou programador Perl de 
verdade, apenas uso Perl nos meus programas, hehehe)  :-P
<modo aguentar ogro me xingado ligado>



SDS,

Luciano Giordani Bassani
lgbassani em terra.com.br



fernandolouis em terra.com.br escreveu:
> Nilson,
>
> - O erro de chartset não ocorre mais;
> - Resolvi usar a biblioteca cgi.pm para pegar os parâmetros e 
> igualmente insere errado via AJAX.
>
> por favor, verifique e veja se há alguma informação que me elucie.
>
> []s,
> Fernando
>
> ----- Original Message ----- From: "Nilson Santos Figueiredo Junior" 
> <acid06 em gmail.com>
> To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
> Sent: Monday, September 01, 2008 5:00 PM
> Subject: Re: [Cascavel-pm]Problemas apenas nas requisições via ajax 
> (caracteres com acentuação)
>
>
> 2008/9/1  <fernandolouis em terra.com.br>:
>> a leitura dos parâmetros também estão ok
>
> Errado. Sua leitura de parâmetros está incorreta.
> Como até estava com boa vontade pra tentar te ajudar, resolvi entrar
> no link fornecido.
>
> Quando tentei fazer o teste de inserção com AJAX de um texto acentuado
> de exemplo, recebi a seguinte mensagem de erro:
>
>  cgi-lib.pl: Unknown Content-type: application/x-www-form-urlencoded;
> charset=UTF-8
>
> Ou seja:
>
> 1) O browser está enviando em UTF8, como eu sugeri anteriormente.
> 2) Sua biblioteca não-padrão para leitura de parâmetros não funciona
> corretamente, como eu sugeri anteriormente.
>
> Infelizmente, não poderei te ajudar mais até que você resolva querer
> desenvolver seguindo o mínimo de boas práticas.
>
> -Nilson Santos F. Jr.
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
>


Mais detalhes sobre a lista de discussão Cascavel-pm