반응형
=================================
=================================
=================================
출처: http://devhome.tistory.com/29
파일의 인코딩을 확인하기 위해서는 유니코드 파일 헤더(BOM)를 확인하여 판단할 수 있다.
유니코드 파일 헤더란?
링크: 유니코드 파일 헤더(Unicode File Header) - BOM(Byte-order mark)
파일 인코딩 확인하기
01.
// 1. 파일 열기
02.
FileInputStream fis =
new
FileInputStream(filePath);
03.
04.
// 2. 파일 읽기 (4Byte)
05.
byte
[] BOM =
new
byte
[
4
];
06.
fis.read(BOM,
0
,
4
);
07.
08.
// 3. 파일 인코딩 확인하기
09.
if
( (BOM[
0
] &
0xFF
) ==
0xEF
&& (BOM[
1
] &
0xFF
) ==
0xBB
&& (BOM[
2
] &
0xFF
) ==
0xBF
)
10.
System.out.println(
"UTF-8"
);
11.
else
if
( (BOM[
0
] &
0xFF
) ==
0xFE
&& (BOM[
1
] &
0xFF
) ==
0xFF
)
12.
System.out.println(
"UTF-16BE"
);
13.
else
if
( (BOM[
0
] &
0xFF
) ==
0xFF
&& (BOM[
1
] &
0xFF
) ==
0xFE
)
14.
System.out.println(
"UTF-16LE"
);
15.
else
if
( (BOM[
0
] &
0xFF
) ==
0x00
&& (BOM[
1
] &
0xFF
) ==
0x00
&&
16.
(BOM[
0
] &
0xFF
) ==
0xFE
&& (BOM[
1
] &
0xFF
) ==
0xFF
)
17.
System.out.println(
"UTF-32BE"
);
18.
else
if
( (BOM[
0
] &
0xFF
) ==
0xFF
&& (BOM[
1
] &
0xFF
) ==
0xFE
&&
19.
(BOM[
0
] &
0xFF
) ==
0x00
&& (BOM[
1
] &
0xFF
) ==
0x00
)
20.
System.out.println(
"UTF-32LE"
);
21.
else
22.
System.out.println(
"EUC-KR"
);
=================================
=================================
=================================
반응형
'JAVA' 카테고리의 다른 글
[java] 자바 이클립스 Configurations (실행구성) 매개변수 설정한 파일 찾기 (0) | 2012.07.10 |
---|---|
[java] JAVA 자바 레지스트리(registry, 에디터:regedit) 값 불러오기 관련 (0) | 2012.05.18 |
[java] 자바 UTF-8, EUC-KR 인코딩 , 디코딩 (0) | 2011.10.20 |
[java] 자바 스윙 타이머 (0) | 2011.09.29 |
자바 이클립스 한글 패치 방법 관련 (0) | 2011.08.12 |