[SP-pm] Problema com encoding

Henrique Fleming hfleming38 em gmail.com
Quarta Julho 11 08:20:11 PDT 2007


O script abaixo pretende, em um texto escrito com encoding "latin1",
transformar caracteres
acentuados em suas versões mais "transportáveis" em Latex. Basicamente ele
deveria ler um
arquivo fornecido como argumento na linha de comando e gerar um arquivo "
temp.tex" em que
os caracteres acentuados foram substituídos pelas convenções Latex. Ele
funciona perfeitamente
se a primeira coluna do hash %dictionary contiver apenas ascii. Da forma que
está, há a reclamação
de "unrecognized character" já para o c-cedilha. Tentei colocar "use
encoding 'latin1' ; " , mas não
funciona igualmente.

Alguém sabe como fazer isso?

Grato,

Henrique

--------------------------------------------------------------------------------
#!/usr/bin/perl
#
# Usar um Hash para dirigir um pattern replacement
# Files are invoked at the command line
#
# use encoding "latin1";
%dictionary = (
       ç   => "\\c{c}",
       á   => "\\'a",
       í   => "\\'{\\i}",
       é   => "\\'e",
       ó   => "\\'o",
       ú   => "\\'u",
       ã   => "\\~a",
       õ   => "\\~o",
       â   => "\\^a",
       ê   => "\\^e",
       ô   => "\\^o",
       ü   => '\\"u',
);
$input = $ARGV[0];
open(INPUT,$input);
open(OUTPUT,">temp.tex");
$length = 1024;
$bytes_read = read(INPUT, $var ,$length);
while ($bytes_read > 0) {
   foreach $key (keys (%dictionary)) {
       $var =~ s/$key/$dictionary{$key}/g;
       }
       print OUTPUT $var;
   $bytes_read= read(INPUT, $var, $length);
}
close(INPUT);
close(OUTPUT);

---------------------------------------------------------------------------------------------------
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20070711/76550c86/attachment.html 


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