[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