Win32 :: OLE-> new('Excel.Application')和带有unicode字符的文件名出错

时间:2014-11-12 13:29:15

标签: windows perl cygwin

我想在Cygwin上打开一个excel文件,文件名中有ü,但我得到一个例外:

OLE exception from "microsoft Office Excel":

这是我正在使用的程序:

use 5.014;
use warnings;
use strict;
use Win32::OLE qw(CP_UTF8);
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Enum;

$Win32::OLE::Warn = 2;
$Win32::OLE::CP = CP_UTF8;

my $excel = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;});   

my $filename = "/cygpath/c/fooü.xls";
$filename = `cygpath -wa '$filename'` or say "Damned";

my $book = $excel->Workbooks->Open({ FileName => $filename, ReadOnly => 1}) or return;

如何正确编码文件名?我已经尝试了encode('utf8', $filename)以及cp1252latin1

0 个答案:

没有答案