나는 파일을 열 (직접 인코딩을 지정하는) 경우바이트 순서를 모르면 Perl에서 UTF-16 데이터를 어떻게 디코딩 할 수 있습니까?
open(my $file,"<:encoding(UTF-16)","some.file") || die "error $!\n";
while(<$file>) {
print "$_\n";
}
close($file);
내가 잘 파일 내용을 읽을 수 있습니다. 그러나, 내가 할 경우 :
use Encode;
open(my $file,"some.file") || die "error $!\n";
while(<$file>) {
print decode("UTF-16",$_);
}
close($file);
나는 다음과 같은 오류 얻을 :
UTF-16:Unrecognised BOM d at F:/Perl/lib/Encode.pm line 174
가 어떻게 그것을 decode
와 함께 작동 할 수 있습니까?
편집 :
FF FE 3C 00 68 00 74 00
는 당신이 우리 해당 파일의 처음 몇 바이트의 덤프 보여줄 수 : 당신은 당신이 디코딩 및 데이터의 다음 청크에 그것을 추가 할 수 없습니다 버퍼의 일부를 저장하는
Encode::FB_QUIET
을 사용할 수 있나요? –아, 그럼 당신은 BOM을 가지고. –