파일이 Windows-1256인지 여부를 확인하고 싶습니다. 텍스트 파일이 Java에서 Windows-1256인지 인식 할 수있는 방법이 있습니까?Windows-1256을 사용하여 텍스트 파일이 인코딩 된 경우 어떻게 감지합니까?
http://jchardet.sourceforge.net/
을 그리고이 질문에 봐 :
파일이 Windows-1256인지 여부를 확인하고 싶습니다. 텍스트 파일이 Java에서 Windows-1256인지 인식 할 수있는 방법이 있습니까?Windows-1256을 사용하여 텍스트 파일이 인코딩 된 경우 어떻게 감지합니까?
http://jchardet.sourceforge.net/
을 그리고이 질문에 봐 :
당신은 인코딩을 확인하려면이 API를 사용할 수
Java : How to determine the correct charset encoding of a stream
-1 jchardet은 대부분의 cp12xx 인코딩을 구분할 수 없습니다. 1250, 1251 및 1253 만 지원됩니다. –
파일로 인코딩 헤더를 추가합니다. 많은 텍스트 편집기는이 작업을 수행 :보다
# -*- coding: cp1256 -*-
기타,이 작업을 수행 할 신뢰할 수있는 방법이 없습니다.
문제는 cp12xx 인코딩이 서로 크게 다르지 않다는 것입니다. 그들은 화면에서과 다르게 보이지만 파일의 데이터에는 0x8a
은 아랍어 ٹ
(1256) 또는 Š (1250과 1252) 또는 아무것도 (1255)를 의미하는 것이 없습니다.
추 신 : 오른쪽에서 왼쪽 문제 때문에 마지막 문장이 잘못되었습니다. "(1256)"코드는 실제로 아랍 문자 뒤에 있습니다.
Windows-1256 (아랍어), UTF-8 및 Windows-1252 (서유럽의 일부) 중에서 선택할 수 있다고 가정 해보십시오. 그런 다음 UTF-8 (unsensible sequence) 및 Windows-1252에 대해 잘못된 인코딩 증명을 등록 할 수 있습니다. 윈도우 1252의 일부 시퀀스가 아닌 바이트 UTF-8 보통 어쨌든 -
try {
readInUTF8(file);
} catch (IsWindows1256Exception e {
readInWindow1256(file);
}
(의사 코드)
만하지 않은 인코딩에의 텍스트 검색 할 수 있습니다에 대한 해석 할 예외를 슬로우 지정된 인코딩에서 유효합니다. 예 : 일반 ASCII 텍스트 블록은 원래 여러 개의 인코딩이 될 수 있습니다 (어느 것이 었는지는 중요하지 않음). –