[Cascavel-pm] UTF-16 em Windows XP

Lorn lorn.br em gmail.com
Sábado Outubro 7 20:09:38 PDT 2006


Putz, como dizemos no trabalho um "misterio da meia-noite", eu já tive esse
problema de chomp não tirar \n\r tive que usar substituicao também, e se
UTF-8 é ruim, UTF-16 deve ser pior ainda, não sei se pode te ajudar, mas eu
não uso o encoding para manipular UTF-8 => ISO-8859, no Linux eu usava um
programa chamado iconv, ai quando precisei fazer algo parecido eu procurei o
iconv no cpan e achei, o modulo Text::Iconv se não me engano, funciona muito
bem comigo ( apesar que eu nunca testei com UTF-16 ),  será que há alguma
vantagem/desvantagem entre Iconv e o encoding? é só para dar meu centésimo
de um centavo, faca o teste com o Text::Iconv, não custa nada ;)

cya

On 10/6/06, Alceu R. de Freitas Jr. <glasswalk3r em yahoo.com.br> wrote:
>
> Olá monges,
>
> Estive manipulando arquivos em UTF-16 da seguinte
> forma:
>
> open( CONTACT, "<:raw:encoding(UTF-16LE)",
> $contact_file ) or die "Cannot read $contact_file:
> $!\n";
>
> open( ACT, "<:raw:encoding(UTF-16LE)", $other_file )
> or die "Cannot read $other_file: $!\n";
>
> open( NEW, ">:raw:encoding(UTF-16LE)", $new_other_file
> )  or die "Cannot create $new_other_file: $!\n";
>
> Isso estava funcionando muito bem, até eu pegar um
> novo arquivo. Depois de ler o arquivo original e criar
> um novo (handle NEW), o arquivo sai uma salada só.
> Aqui está a lógica que usei:
>
> while (<ACT>) {
>
>     @line = split( /\|/, $_ );
>
>     if ( exists( $contacts{ $line[$line_field2] } ) )
> {
>
>         print NEW;
>
>     }
>
>     @line = ();
>
>     print "\b", $progress_char[$progress_counter];
>     $progress_counter++;
>     $progress_counter = 0 if ( $progress_counter >
> scalar(@progress_char) - 1 );
>
> }
>
> Eu manipulei esse trecho do código tentando isolar o
> problema. Se eu simplesmente excluo o código
> condicional, o arquivo é criado perfeitamente. Se
> deixo ele, a cada caracter impresso, um caracter NUL é
> impresso também, à direita. Eu não consigo abrir mais
> visualizar o conteúdo do arquivo recém criado no VIM
> ou no Excel, por exemplo (mas consigo com o Notepad).
>
> Eu tentei usar Encode (para converter o pipe para
> UTF-16LE) e Encode::Guess, sem sucesso. Eu
> simplesmente estou sem pistas nenhuma do que pode
> estar acontecendo. A princípio eu achei que poderia
> ser a quebra de linha (e para minha surpresa, chomp
> não funcionou, tive que usar s/\r\n//) mas depois de
> alguns testes descartei a possibilidade. Alternar para
> :raw:encoding(UTF-16BE) e :raw:encoding(UTF-16) também
> não ajudou.
>
> Alguém já sofreu com isso?
>
> []'s
>
>
> Alceu Rodrigues de Freitas Junior
> --------------------------------------
> glasswalk3r em yahoo.com.br
> http://www.imortais.cjb.net
> -----------------------------------------------------------------------
> A well-used door needs no oil on its hinges.
> A swift-flowing stream does not grow stagnant.
> Neither sound nor thoughts can travel through a vacuum.
> Software rots if not used.
> These are great mysteries -- The Tao Of Programming, 5.1
>
>
>
>
>
>
>
>
> _______________________________________________________
> Você quer respostas para suas perguntas? Ou você sabe muito e quer
> compartilhar seu conhecimento? Experimente o Yahoo! Respostas !
> http://br.answers.yahoo.com/
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Lorn
- Slackware Linux
www.slackwarezine.com.br
- http://lornlab.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20061008/773072b3/attachment.html 


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