2011-11-25 4 views
0

가능한 중복 :
How do I detect the encoding of some text?텍스트 파일을 구분하는 방법은 무엇입니까?

어떻게 텍스트 파일의 유니 코드 텍스트 파일 등을 구분하기 위해?

Java를 사용하여 대량 업로드 파일을 만들고 있습니다. 먼저 입력을 Excel 파일에 쓴 다음 유니 코드 텍스트 (.txt) 파일로 저장합니다. 그런 다음 유니 코드 텍스트 파일을 업로드하고 Java 클래스에서 읽습니다.

여기에 문제가 있습니다. .txt 파일과 텍스트 파일을 구분할 수 있습니다. 하지만 유니 코드 텍스트 파일이든 다른 텍스트 파일이든 상관없이 어떻게 파일을 찾을 수 있습니까?

답변

0

import org.mozilla.universalchardet.UniversalDetector; 

public class TestDetector { 
    public static void main(String[] args) throws java.io.IOException { 
    byte[] buf = new byte[4096]; 
    String fileName = args[0]; 
    java.io.FileInputStream fis = new java.io.FileInputStream(fileName); 

    // (1) 
    UniversalDetector detector = new UniversalDetector(null); 

    // (2) 
    int nread; 
    while ((nread = fis.read(buf)) > 0 && !detector.isDone()) { 
     detector.handleData(buf, 0, nread); 
    } 
    // (3) 
    detector.dataEnd(); 

    // (4) 
    String encoding = detector.getDetectedCharset(); 
    if (encoding != null) { 
     System.out.println("Detected encoding = " + encoding); 
    } else { 
     System.out.println("No encoding detected."); 
    } 

    // (5) 
    detector.reset(); 
    } 
} 
시도
관련 문제