파일시작부분의 2바이트가 $FEFF나 $FFFE일 경우 유니코드 텍스트파일이다.
아래는 파일이름으로 유니코드인지 판별하는 함수
: 유니코드이면 True 아니면 False 를 반환
functionIsUnicodeTextFile(const fileName: String): Boolean;
var
fd: THandle;
ByteOrderMarker: Word;
begin Result:=False;
{1. 파일을 열어 2바이트만 읽어들인다}
fd:=FileOpen(fileName, fmOpenRead);
FileRead(fd, ByteOrderMarker, 2);
{2.파일시작부분의 2바이트가
$FEFF(Little Endian) 혹은 $FFFE(Big Endian)일 경우 유니코드 파일임}
if(ByteOrderMarker=$FEFF) or(ByteOrderMarker=$FFFE) thenResult:=True;
FileClose(fd);
end;
댓글 없음:
댓글 쓰기