[Cascavel-pm] Uso de encode/decode para tratar Unicode

Nilson Santos Figueiredo Junior acid06 em gmail.com
Terça Janeiro 9 12:16:20 PST 2007


On 1/9/07, Daniel Ruoso <daniel em ruoso.com> wrote:
> Ainda de forma resumida, qualquer chamada explicita a encode ou decode
> demonstra que você está indo pelo caminho errado.

Daniel, gostaria que, se possível, você elaborasse mais sobre o assunto.
Recentemente, precisei de realizar algumas chamadas explícitas não
exatamente aàs funções encode/decode mas à função utf8::upgrade().

O código em questão está no módulo
WebService::Audioscrobbler::DataFetcher (disponível na CPAN). O trecho
do código específico é este:

  sub retrieve_data {
      my ($self, $uri) = @_;

      my $resp = LWP::Simple::get($uri)
          or $self->croak("Error while fetching data from '$uri'");

      utf8::upgrade($resp);

      return $resp;
  }

O problema é que os dados retornados pela função LWP::Simple::get()
não estão marcados como UTF8, apesar de serem UTF8. Isso me causava
diversos problemas e o uso da função utf8::upgrade() foi uma solução
que eu encontrei. Se tiver alguma outra forma melhor de fazer isso, eu
ficaria muito feliz em saber, já que não sou nenhum expert nesses
assuntos sobre encodings.

-Nilson Santos F. Jr.


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