Задать вопрос
Ответы пользователя по тегу Java
  • Как это расшифровать?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    Если нужен ответ на вопрос как расшифровать, то вот так:
    import java.nio.ByteBuffer;
    import java.nio.charset.Charset;
    import java.nio.charset.StandardCharsets;
    
    public class Main {
    
        public static void main(String[] args) {
            
            byte[] rawBytes = Charset.forName("Windows-1251")
                    .encode("ГђВќГђВµ ГђВЅГђВ°").array();
            String asUTF8 = StandardCharsets.UTF_8
                    .decode(ByteBuffer.wrap(rawBytes)).toString();
            byte[] bytes = StandardCharsets.ISO_8859_1
                    .encode(asUTF8).array();
            String result = StandardCharsets.UTF_8
                    .decode(ByteBuffer.wrap(bytes)).toString();
    
            System.out.println(result); // Не на ...йден...?
        }
    }


    Этот код не гарантирует полное восстановление конечно, но хотя бы текст станет читабельным.
    Проблема в том что изначальный поток байтов utf-8 был интерпретирован как ISO-8859-1/Latin-1/ASCII, но сохранён снова как utf-8. Затем строка была выведена в консоль под видом строки Windows-1251.
    Ответ написан
    Комментировать