2012-01-19 8 views
2

私はあるファイルから別のファイルに読み込まれたデータを印刷するためにPerlを使用しています。時には、éのようなアクセント記号付きの文字のような英語以外の文字を読み込んでいます。ただし、実行:英語以外の文字をPerlでファイルに正しく印刷する方法は?

print FILE_HANDLER "... $variable ..."; 

アクセントを保持しません。 éは実際に "é"として印刷されます。

正しく保存されるようにこれらの文字を印刷するにはどうすればよいですか?詳細については、私が開いて書き込むファイルは次のようになります。

open READ_FILE, "<", "file.xml" or die $!; 
open WRITE_FILE, ">", "file.txt" or die $!; 

ありがとうございました。 perldocを開く-f

+2

あなたが 'open_FILE、" <: "、" file.xml "またはdie $ !,' read [perl open](http://perldoc.perl。 org/functions/open.html) – jchips12

答えて

7

は言う:

あなたがかもしれない(通常は必要があります)そのハンドルに適用するI/O層を(時には「学問」という。)を指定するために、オープンの3引数形式を使用します入力と出力の処理方法に影響を与えます(詳細はopenとPerlIOを参照してください)。例:

open(my $fh, "<:encoding(UTF-8)", "filename") 
|| die "can't open UTF-8 encoded filename: $!"; 

Unicode文字を含むUTF8エンコードファイルを開きます。 perluniintroを参照してください

+0

この助けをありがとう!私は後で家に帰るときにそれを試してみる必要があります。そして、私は、成功か不足かを返信します。 – MrDanA

+0

あなたの助けてくれてありがとう!私がエンコーディング(Cp1252)を使用しなければならなかった書き込みファイル以外はすべてうまくいった。それは、Eclipseがファイルのエンコーディングが実際に行っていたと言っていたものでした。とにかく、助けてくれてありがとう! – MrDanA

関連する問題