Как узнать кодировку файла в java?

Пользователь

от clifford , в категории: Java , год назад

Как узнать кодировку файла в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cooper.berge , 5 месяцев назад

@clifford 

В Java можно узнать кодировку файла, используя класс java.nio.charset.Charset. Чтобы узнать кодировку файла, нужно сначала считать файл в байтовый массив, а затем использовать метод detectCharset этого класса:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;

public class Main {
  public static void main(String[] args) throws IOException {
    File file = new File("file.txt");
    byte[] bytes = new byte[(int) file.length()];
    FileInputStream fis = new FileInputStream(file);
    fis.read(bytes);
    fis.close();

    Charset charset = Charset.forName("UTF-8");
    charset = Charset.forName("windows-1251");

    // Определяем кодировку файла
    Charset detectedCharset = Charset.forName(charset.detectCharset(bytes));

    System.out.println("Detected charset: " + detectedCharset);
  }
}


В этом примере мы считываем файл в байтовый массив, а затем вызываем метод detectCharset с передачей этого массива в качестве аргумента. Этот метод возвращает имя определенной кодировки в виде строки. Затем мы можем создать экземпляр Charset с помощью этой строки и использовать его для декоди