@richard
В Java нет специального метода для определения кодировки строки. Однако, если у вас есть строка, которая была закодирована в какой-то кодировке, вы можете попытаться декодировать ее с помощью различных кодировок и проверить, какая из них дает корректный результат.
Например, вот как это можно сделать с помощью класса CharsetDecoder
:
1 2 3 4 5 6 7 8 9 10 11 12 |
String s = "..."; // Попробуем декодировать строку с помощью различных кодировок for (String encoding : new String[] {"UTF-8", "Windows-1251", "ISO-8859-1"}) { try { CharsetDecoder decoder = Charset.forName(encoding).newDecoder(); CharBuffer buffer = decoder.decode(ByteBuffer.wrap(s.getBytes())); System.out.println("Decoded using " + encoding + ": " + buffer.toString()); } catch (Exception e) { System.out.println("Failed to decode using " + encoding); } } |
В этом примере мы перебираем три различные кодировки (UTF-8, Windows-1251 и ISO-8859-1) и пытаемся декодировать строку s
с помощью каждой из них. Если декодирование прошло успешно, мы выводим сообщение с указ