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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от marc_zboncak , 5 месяцев назад

@felix 

В Java нет способа узнать кодировку строки напрямую. Кодировка строки указывается только при ее создании из байтов или при преобразовании в байты.


Однако, если у вас есть строка и вы хотите узнать, в какой кодировке она была создана, можно попробовать преобразовать ее в байты с использованием разных кодировок и проверить, какая из них даст корректный результат.


Например, следующий код преобразует строку в байты с использованием кодировки UTF-8, затем обратно в строку с использованием той же кодировки:

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

if (str.equals(str2)) {
    System.out.println("The strings are equal.");
} else {
    System.out.println("The strings are not equal.");
}


Если строки str и str2 равны, то строка str была создана в кодировке UTF-8. Если строки не равны, то строка str была создана в другой кодир