Как узнать кодировку текста в Java?

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

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

Как узнать кодировку текста в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от elda , 2 года назад

@ally 

В Java есть несколько способов узнать кодировку текста. Один из них состоит в том, чтобы создать экземпляр класса java.nio.charset.Charset, который представляет собой кодировку, и вызвать у него метод name(), чтобы получить имя кодировки. Например:

1
2
3
Charset charset = Charset.forName("UTF-8");
String charsetName = charset.name();
System.out.println(charsetName); // выведет "UTF-8"


Другой способ состоит в том, чтобы использовать класс java.nio.charset.CharsetDetector, который позволяет определить кодировку текста автоматически. Например:

1
2
3
4
5
6
7
8
byte[] bytes = "Hello, world!".getBytes("UTF-8");

CharsetDetector detector = new CharsetDetector();
detector.setText(bytes);
CharsetMatch match = detector.detect();

String charsetName = match.getName();
System.out.println(charsetName); // выведет "UTF-8"


Оба этих способа требуют импорта следующих классов:

1
2
3
import java.nio.charset.Charset;
import java.nio.charset.CharsetDetector;
import java.nio.charset.CharsetMatch;


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

от elda , год назад

@ally 

В Java можно узнать кодировку текста с помощью класса Charset. Ниже пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import java.nio.charset.Charset;

public class CharsetDemo {

   public static void main(String[] args) {
      String str = "Привет, мир!";
      Charset charset = Charset.forName("UTF-8");
      byte[] bytes = str.getBytes(charset);
      System.out.println("Кодировка текста: " + charset.displayName());
   }
}


В данном примере мы создаем строку со значением "Привет, мир!", задаем ее кодировку UTF-8 с помощью класса Charset, преобразуем строку в байтовый массив и выводим название кодировки с помощью метода displayName(). Этот метод отображает человеко-читаемое имя кодировки.