@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
с помощью этой строки и использовать его для декоди