如何使用Perl将非英语字符正确打印到文件中?

如何使用Perl将非英语字符正确打印到文件中?,perl,Perl,我正在使用Perl将从一个文件读取的一些数据打印到另一个文件。有时我用非英语字符阅读,例如重音字符,如é。但是,要做到: print FILE_HANDLER "... $variable ..."; 不保留口音。这个字母实际上被打印成“Ô) 如何将这些字符打印出来以便正确保存?有关详细信息,我打开和写入的文件如下所示: open READ_FILE, "<", "file.xml" or die $!; open WRITE_FILE, ">", "file.txt" or d

我正在使用Perl将从一个文件读取的一些数据打印到另一个文件。有时我用非英语字符阅读,例如重音字符,如é。但是,要做到:

print FILE_HANDLER "... $variable ...";
不保留口音。这个字母实际上被打印成“Ô)

如何将这些字符打印出来以便正确保存?有关详细信息,我打开和写入的文件如下所示:

open READ_FILE, "<", "file.xml" or die $!;
open WRITE_FILE, ">", "file.txt" or die $!;
打开READ_文件、“、”FILE.txt”或die$!;
感谢您的帮助。

perldoc-f open说:

您可以(并且通常应该)使用open的三参数形式来指定I/O层(有时称为“规程”),以应用于影响输入和输出处理方式的句柄(有关详细信息,请参阅open和PerlIO)。例如:

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

open(我的$fh),“如果你知道file.xml的编码,你可以尝试
open READ_file,”非常感谢你的帮助!我回家后必须尝试一下,我肯定会回复成功或失败。谢谢你的帮助!一切都很好,除了写文件时我必须使用编码(Cp1252).这就是Eclipse所说的文件的编码,嗯。无论如何,谢谢你的帮助!