shift_jis 인코딩으로 파일을 처리해야합니다. 그러나 라인 종단 기호는 익숙하지 않은 형식입니다.CRLF, NEL 라인 터미네이터로 라인을 처리하는 방법은 무엇입니까?
> 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
}
을 여전히 각 레코드의 끝에 CR을 떠나 그러나.
이러한 유형의 파일을 종료하는 올바른 방법은 무엇입니까?
호기심 : 파일의 각 레코드가 CR LF NEL로 종료된다는 의미입니까? 아니면 CR LF와 NEL과 같은 기록이 있습니까? – ZoogieZork
NEL 문자가 있습니까? 그 문자는 Shift JIS (또는 그 문제에 대해서는 ASCII)에 없습니다. 위치 0x15에있는 문자는 NAK입니다. –
멀티 바이트 문자 시퀀스의 (Shift-JIS에서) 0x85이므로 NEL 문자를 사용하지 않는 것이 좋습니다. 예 : 여기에있는 Shift-JIS 파일 세트는 매우 자주이 시퀀스를 포함합니다. 실제로이 한자 : 桁를 나타내는 "\ x8c \ x85". 그래서 당신은 아마 단지 CR을 제거하기를 원할 것입니다. 당신은 쉽게 정규식으로 할 수 있습니다. – Giel