[Cascavel-pm] Uso de encode/decode para tratar Unicode
Nilson Santos Figueiredo Junior
acid06 em gmail.com
Quarta Janeiro 10 06:51:28 PST 2007
On 1/10/07, Daniel Ruoso <daniel em ruoso.com> wrote:
> O que está acontecendo aqui é que o método LWP::Simple tem um bug, ele
> deveria utilizar o método $response->get_decoded() ao inves de
> simplesmente $response->get() (veja HTTP::Response).
Na verdade, o LWP::Simple nem usa o HTTP::Response. Ele faz todo o
parsing manualmente com expressões regulares e coisas do tipo, sem
usar módulos externos.
> No caso do código que você apresentou, existem duas possibilidades: a
> primeira é submeter o bug ao LWP::Simple e esperar que ele seja
> corrigido para poder tirar o utf8::upgrade() do seu código. A outra é
> submeter o bug ao LWP::Simple, mas usar diretamente o LWP::UserAgent e
> chamar o método correto do objeto HTTP::Response.
Bom, estou tentando encontrar algum email de autor ou coisa assim no
módulo LWP::Simple. Mas não consegui.
Acho que vou atualizar o módulo pra usar o LWP::UserAgent.
> Mas, de todas essas opções, fazer utf8::upgrade() cegamente é a opção
> mais frágil, mas o único workaround possível no caso do site do outro
> lado não estiver seguindo as regras corretamente.
O outro lado manda os cabeçalhos corretamente indicando o encoding. A
questão é que, a princípio, os datos sempre virão como UTF8. Claro que
algum dia isso poderia mudar, então é melhor ser future-proof e fazer
as coisas da melhor maneira mesmo.
Obrigado pela ajuda.
-Nilson Santos F. Jr.
Mais detalhes sobre a lista de discussão Cascavel-pm