[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