我有一个在 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但我不知道该怎么办。