[Cascavel-pm] Res: gerando arquivos tipo unix

Daniel Ruoso daniel em ruoso.com
Quinta Janeiro 8 04:49:45 PST 2009


Em Qui, 2009-01-08 às 10:09 -0200, Elvio Barbalho escreveu:
> Estou falando sobre Conversão de Arquivos UTF-8 e ISO-8859-1

Bom, se o arquivo está sendo gerado em Perl, esse é o jeito errado de
resolver o seu problema. O que você precisa é definir o encoding de
saída na hora de abrir o arquivo:

  open my $file, '>:utf8', 'saida.txt';

ou para definir um encoding diferente de utf8

  open my $file, '>:encoding(iso8859-1)', 'saida.txt';

O mesmo se aplica para a leitura de arquivos

  open my $file, '<:utf8', 'entrada.txt';
  open my $file, '<:encoding(iso8859-1)', 'entrada.txt';

Ou, no caso de receber pelo STDIN e jogar para o STDOUT

  binmode STDIN, ':encoding(iso8859-1)';
  binmore STDOUT, ':utf8';

E o mesmo vale para qualquer filehandle.

Por último, se o seu código fonte estiver em utf8, não esqueça de fazer

  use utf8;

para que as strings contidas no código fonte sejam interpretadas
corretamente.

Eu costumo dizer que, em Perl, se você estiver realizando conversões
explícitas é porque tem alguma coisa errada.

daniel



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