카테고리 없음

Java File Encoding / Java File 인코딩

Tada.*+ 2024. 3. 28. 13:53
728x90

Library 추가하기

implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'

소스 작성

import org.mozilla.universalchardet.UniversalDetector;

...

public static String getEncoding(MultipartFile file) {
    String detectedCharset = null;
    InputStream fis = null;
    try {
        byte[] buf = new byte[4096];
        fis = file.getInputStream();

        UniversalDetector detector = new UniversalDetector(null);

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

        detectedCharset = detector.getDetectedCharset();
        if(detectedCharset != null && detector.isDone() && Charset.isSupported(detectedCharset)){
            detector.reset();
            return detectedCharset;
        }

    } catch (Exception e){
        return "";
    } finally {
        try { if(fis != null) fis.close(); }catch (Exception e){}
    }
    return detectedCharset;
}
728x90