[Cascavel-pm] Conversao para minusculo de caracteres acentuados

Joenio Marques joenio em gmail.com
Sexta Outubro 6 08:31:23 PDT 2006


Olá Monges,

Estou sofrendo com a conversão para minusculo de caracteres acentuados
aqui. Já tentei de tudo [1], até reza braba... ;-)

Tenho um arquivo em LATIN1 e quero transforma-lo em UTF8 para depois
converter para minusculo, o locale do meu sistema está em UTF-8.

Para a conversão para UTF-8 utilizo o módulo Encode:
Encode::from_to($content_file, 'latin1', 'utf8');

Faço essa conversão porque vou assumir que dentro do meu script tudo
está como UTF8. Estou usando a pragma utf8 e o script .pl também está
com esta codificação.

A conversão para minusculo com a função 'lc' não faz efeito nos
caracteres acentuados. Para confirmar a codificacao estou usando o
módulo Encode::Detect::Detector que me retorna em que codificação algo
está.

$content_file = <ABRO O ARQUIVO E LEIO TODO O CONTEUDO>;
print detect($content_file); #imprime 'windows-1252'
Encode::from_to($content_file, 'latin1', 'utf8');
print detect($content_file); #imprime 'utf-8'
print lc($content_file); #imprime tudo em minusculo menos caracteres
acentuados e Ç

O arquivo está em 'latin1', apesar de 'detect' imprimir
'windows-1252'. acredito que seja por serem padrões semelhantes. [2]

Já testei:
use locale;
use utf8;
use encoding ... ;
use Encode;
use POSIX ...;
use H%#&$#Ä
e nada me deu o que quero...

Estou quase apelando para tr/ÁÀÓÒÃÂ/áàóòãâ/. Algém teria uma luz para mim?

[1] - http://mail.pm.org/pipermail/cascavel-pm/2005-November/004254.html
http://mail.pm.org/pipermail/cascavel-pm/2004-October/001963.html
http://mail.pm.org/pipermail/cascavel-pm/2005-April/002792.html
etc...

[2] - http://en.wikipedia.org/wiki/Windows-1252

Obrigado,
-- 
Joenio Marques
- Salvador Perl Mongers


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