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

Luis Motta Campos luismottacampos em yahoo.co.uk
Quarta Setembro 3 00:05:55 PDT 2008


Luciano Giordani Bassani wrote:
> 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>

Luciano, a regexp que você enviou na verdade TRUNCA UTF8 com uns hacks
muito sujos.

Eu não inseriria nada assim na minha base de dados, mas você pode ser
masoquista, e gostar de sofrer assim.

Minha recomendação é usar o módulo Encode, que faz o trabalho de
conversão da forma correta.

Putamplexos.
-- 
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.


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