[Cascavel-pm] as dores do Unicode

Gilmar Júnior gilmarjr em im.ufba.br
Quarta Novembro 16 16:57:25 PST 2005


Pois é.. problemas com codificação. Já sofri bastante com isso...

Acabo de fazer alguns testes baseado no que vc escreveu e tive os
seguintes resultados:

1) Independente da codificação de saída o "file" só me mostrou algo
diferente de "ASCII Text" quando o texto tinha acento ou ç.
2) Depois que coloquei alguns acentos e fiz a conversão com

<perl>
use encoding 'iso8859-1', STDOUT => 'utf8';
print while (<>);
</perl>

O file me mostrou que era "UTF-8 Unicode tex". Tentei abrir no vim e _de
fato_ ficou uma bagunça, mas imagino que isso aconteceu porque meu
locale está configurado para ISO8859-1.

Quanto à parte do CGI: conforme Luis frisou há algum tempo o HTML tem
seu próprio método de codificar acentos e caracteres especiais. É
saudável que isso seja obedecido. Na conversa HTTP a codificação do
arquivo a ser passado é especificada, não me lembro como fazer isso, mas
tem um método no CGI que permite. É saudável também que no cabeçalho do
HTML haja a especificação da codificação.

Em formulários _me parece_ que o navegador posta os dados na mesma
codificação que recebeu a página contendo o formulário.

Da última vez que mexi com CGI tinha um problema semelhante. Mas eu fiz
a conversão no próprio CGI, com essa linha "encoding" lá em cima e
funcionou.

Boa sorte aí!

[]'s
Gilmar.

Alceu Rodrigues de Freitas Jr. escreveu:

>Olá monges,
>
>Estive tentando fazer algo relativamente simples e acabei me estressando 
>ao tentar. Eu gostaria de fazer algo assim:
>- converter um arquivo texto em ISO 8859-1 para UTF-8
>- um CGI lê esse arquivo de mensagens em utf-8
>- o CGI gera páginas usando as mensagens lidas no arquivo, gerando saída 
>também em utf-8.
>
>Não funciona. Eu li "perldoc perluniintro" e li um blablabla 
>interminável dizendo como é transparente usar Unicode com Perl 5.8... 
>mas não encontrei uma maneira rápida de fazer isso.
>
>Tentei usar:
>
>open(my $old_text, '<:encoding(iso-8659-1)', 'text.txt');
>open(my $unicode, '>:utf8',                  'text.utf8');
>while (<$old_text>) { print $unicode $_ }
>
>E aparentemente não funciona. O que é muito estranho. Se eu uso o 
>programa "file" no arquivo, recebo como resposta "arquivo texto em 
>utf-8". Eu abro esse arquivo no Vim e fica uma bagunça. Eu abro isso no 
>Kwrite e fica uma bagunça. Eu faço o CGI ler isso... e também fica uma 
>bagunça!
>
>Usar o pragma "use open :utf8" também não resolveu.
>Alguém poderia indicar um caminho pelas pedras menos tortuoso?
>
>Grato!
>
>[]'s
>Alceu
>
>
>	
>
>	
>		
>_______________________________________________________ 
>Yahoo! Acesso Grátis: Internet rápida e grátis. 
>Instale o discador agora!
>http://br.acesso.yahoo.com/
>
>_______________________________________________
>Cascavel-pm mailing list
>Cascavel-pm em pm.org
>http://mail.pm.org/mailman/listinfo/cascavel-pm
>
>  
>



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