[Rio-pm] LWP::Simple x UTF-8

Stanislaw Pusep creaktive em gmail.com
Quinta Junho 2 07:36:34 PDT 2011


Bom dia, Matheus!
O LWP retorna octets, enquanto o texto, para Perl, é Unicode. Você precisa
decodificar os octets, para depois recodificar:

perl -MEncode -MLWP::Simple -e 'my $content = decode_utf8(get("
http://www.cpvs.com.br/cpvs/prodpesquisa.aspx?codigo=87")); open(my $fh,
">:encoding(UTF-8)", "teste.html"); print $fh $content'

Para comparação, recodificando em ISO-8859-1:

perl -MEncode -MLWP::Simple -e 'my $content = decode_utf8(get("
http://www.cpvs.com.br/cpvs/prodpesquisa.aspx?codigo=87")); open(my $fh,
">:encoding(ISO-8859-1)", "teste.html"); print $fh $content'

Agora, se a sua intenção é apenas baixar o HTML e guardar num arquivo,
preservando a codificação UTF-8... Dispense o Unicode e trabalhe só com
octets:

perl -MLWP::Simple -e 'my $content = get("
http://www.cpvs.com.br/cpvs/prodpesquisa.aspx?codigo=87"); open(my $fh,
">:raw", "teste.html"); print $fh $content'

Para mais detalhes (como, por exemplo, normalizar arquivos que misturam
várias codificações), veja o artigo:
http://sao-paulo.pm.org/equinocio/2011/mar/4

ABS()



2011/6/2 Matheus Lucas <malsi2 em yahoo.com.br>

> Bom dia amigos !
> Estou com uma pequena duvida aqui, talvez alguem ai ja passou por isso...
> estou pegando conteudo de alguns sites com o metodo get() do LWP::Simple
>
>  my $urlContent = get("
> http://www.cpvs.com.br/cpvs/prodpesquisa.aspx?codigo=87");
>
> porem, este site esta vindo originalmente em formato ISO(8859-1) e com um
> monte de caracteres bagunçados, quando eu abro em um navegador configurado
> para utf8...normal né.
>
> *Administração:
> * Administrado na ração para frangos de corte e perus.
>
>
> mais eu preciso desse arquivo em utf-8 !!!
>
> continuando, eu abro um arquivo usando o open com o argumento
> "encoding(UTF-8)"
> open( FILE, '>:encoding(UTF-8)', "ttt.htm" );
> e escrevo da forma tradicional... nao conheço outra forma de escrever
> arquivos no perl.
> print FILE $urlContent;
> e mesmo assim ele vem com os caracteres da codificacao ocidental, porem eu
> verifico o arquivo com o comando ""file ttt.htm" e ele me fala que o arquivo
> ta em utf-8.
>
> a pergunta é: alguem ai sabe como pegar esse codigo ou escrever ele ja na
> codificaçao utf-8 ????
> espero ter sido claro :-)
>
> Abraços a todos e obrigado !
>
> Matheus Lucas
> Viçosa-MG
>
>
>
> --- Em *seg, 30/5/11, Diogo Leal <estranho em diogoleal.com>* escreveu:
>
>
> De: Diogo Leal <estranho em diogoleal.com>
> Assunto: [Rio-pm] FSLDC é neste sábado
> Para: "Perl Mongers Rio de Janeiro" <rio-pm em pm.org>
> Data: Segunda-feira, 30 de Maio de 2011, 19:28
>
> Pessoal,
>
> Será neste sábado o Forum de Software Livre de Duque de Caxias, que contará
> com uma palestra sobre Perl Moderno.
> Acho que será bem válido a presença dos monges lá no evento.
>
> O site do evento é => http://forumsoftwarelivre.com.br/2011/
>
> Eu sei que é em Caxias.. mas pô... Caxias é perto do Rio.
>
>
>
> Diogo Leal [aka estranho]
> http://diogoleal.com
> msn | gtalk: estranho em diogoleal.com<http://mc/compose?to=estranho@diogoleal.com>
>
>
> -----Anexo incorporado-----
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org <http://mc/compose?to=Rio-pm@pm.org>
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20110602/196cd7de/attachment.html>


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