【发布时间】:2012-09-16 10:19:38
【问题描述】:
我有一个在 Windows 上编写的 Perl 程序。开头是:
$unused_header = <STDIN>;
my @header_fields = split('\|\^\|', $unused_header, -1);
应该拆分包含非常大文件的输入:
The|^|Quick|^|Brown|^|Fox|!|
进入:
{The, Quick, Brown, Fox|!|}
注意:这条线只做headre,还有另一条类似的做重复的数据线。
它在 Windows 上运行良好,但在 linux 上却失败了。但是,如果我在 Perl 中定义一个具有相同内容的字符串,并在其上运行拆分,它就可以正常工作。
我认为这是一个 UTF-16 编码处理问题,但我不确定如何处理。有谁知道我怎样才能让 perl 理解 UTF-16 被输送到 STDIN 中?
我找到了:http://www.haboogo.com/matching_patterns/2009/01/utf-16-processing-issue-in-perl.html,但我不确定如何处理它。
【问题讨论】:
标签: windows linux perl encoding port