代码之家  ›  专栏  ›  技术社区  ›  Todd Hunter

如何处理带有CRLF、NEL线路终端的线路?

  •  1
  • Todd Hunter  · 技术社区  · 16 年前

    我需要用shift-jis编码处理一个文件。然而,行结束符的格式我不熟悉。

    > file record.CSV 
    record.CSV: Non-ISO extended-ASCII text, with CRLF, NEL line terminators
    

    我用的是通用的:

    open my $CSV_FILE, "<:encoding(shift_jis)", $filename or die "Could not open: $CSV_FILE : $!";
    while (<$CSV_FILE>) {
        chomp;
        # do stuff
    }
    

    终止这些类型的文件的正确方法是什么?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Pedro Silva    16 年前

    为什么不呢 $_ =~ s/\r// 手动?

    编辑:显然,你也可以

    require Encode;
    use Unicode::Normalize;
    
    s/\x{0085}//g;
    

    NEL: Next Line, U+0085 角色。

        2
  •  0
  •   user240438 user240438    16 年前