Windows XP マシンのディレクトリに、デンマーク語の文字を含むファイルがあります。Strawberry perl を使用しており、このファイルを読みたいと思っています。次のコードは正常に動作します。
use Win32::Unicode::File;
# Some code left out....
$fname = $mw -> getOpenFile(-filetypes=>$types);
my $fh = Win32::Unicode::File->new;
$fh->open('<', $fname);
getOpenFile ルーチンは Tk から来ています。何らかの理由で Win32::Unicode::File には、私が耐えられない不幸な副作用があります (それは私のメモリを食い尽くします。単純な Win32::Unicode::File readline ループと Strawberry Perl による「メモリ不足」を参照してください)。Win32::Unicode::File インターフェイスを使用せずにファイルを開こうとすると、ファイルが見つからないというメッセージが表示されます。これは、パスが正しく解釈されないことが原因です。Perlに従ってパスを変換しようとしました:なんらかの理由で動作しないWindows でのパス エンコーディングの管理。これをどのように解決すればよいですか?私は次のことを試しました:
use Encode;
# Some code left out....
$fname = $mw -> getOpenFile(-filetypes=>$types);
my $fh;
open($fh, '<', encode("utf8",$fname,Encode::FB_CROAK));
そしてそれは機能しません。何か案は?
不明な場合はご容赦ください。
敬具、マイケル