@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
была создана в другой кодир