【发布时间】:2016-12-05 19:55:57
【问题描述】:
问题:为什么最后没有 CFLF 的最后一行没有被 perl 的 split 函数正确拆分。它应该显示 5 个字段。
输入文件有这些行。最后一行没有 CRLF(回车和换行)
1;P7;extended ascii ÀÇÊ;;
2;P8;non-ascii ΩЖאഉて;;
3;P8;non-ascii ΩЖאഉて;;
我的代码是,
use strict;
use warnings;
use Encode;
use utf8;
my $COL_SEP=';';
open FL, "<:encoding(UTF-16)", $ARGV[0] or die "canot open\n";
while(my $line= <FL>) {
chomp $line;
print "$. length=",length($line),"\n";
# print "\n",$line,"\n";
my @fields = split($COL_SEP, $line);
print "number of fields=",scalar(@fields),"\n";
}
close FL;
输出是
1 length=26
number of fields=5
2 length=23
number of fields=5
3 length=22
number of fields=3
【问题讨论】:
标签: perl encoding split utf-16