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