我正在使用Perl将从一个文件读取的一些数据打印到另一个文件。有时我会读非英文字符,例如é等重音字符。但是,做:
print FILE_HANDLER "... $variable ...";
不保留重音符号。 é实际上被打印为“Ô。
如何将这些字符打印出来以便妥善保存?有关更多信息,我打开和写入的文件都是这样完成的:
open READ_FILE, "<", "file.xml" or die $!;
open WRITE_FILE, ">", "file.txt" or die $!;
感谢您的帮助。
答案 0 :(得分:7)
您可以(并且通常应该)使用open的三参数形式来指定I / O层(有时称为“学科”)以应用于影响输入和输出处理方式的句柄(请参阅打开和PerlIO了解更多详情)。例如:
open(my $fh, "<:encoding(UTF-8)", "filename")
|| die "can't open UTF-8 encoded filename: $!";
打开包含Unicode字符的UTF8编码文件;见perluniintro