Архив рубрики: java j2ee

java Properties неправильно читает кирилицу

Если класс Properties выдает кракозябры в кирилических значениях свойств, а такие свойства могут использоваться часто и густо, есть масса способов прочесть байтовый поток, создать строку из байтов с нужной кодировкой источника, затем снова получить байтовый поток , и указать в методе load. Но постараемся сделать проще и короче:
FileInputStream fin = new FileInputStream(file);

try {
InputStreamReader isr = new InputStreamReader(fin,"windows-1251");//Здесь указываем кодировку
properties.load(isr);
... Крошим скалу дальше, кирилица будет читаться на ура

java неверно читаются имена файлов на сервере через FTPClient и список всех кодировок

При чтении имен файлов с сервера, русские буквы в именах идут кракозябрами. Нужно использовать метод setControlEncoding класса FTPClient. В качестве параметра передается кодировка, я так и не понял, нужно кодировку сервера или клиента указать. Я указал кодировку принимающего компьютера, а не сервера и всё получилось. Только выполнять этот метод setControlEncoding (String кодировка) нужно сразу после создания класса до того, как он приконектился. Например

        FTPClient fc;

        fc = new FTPClient();
        fc.setControlEncoding("windows-1251");
//....... Далее коннектимся, получаем список файлов, выводим имя 13-го по списку файла, который имеет в имени кирилические буквы они же символы, и раньше был кракозябренным
        FTPFile[] ff = fc.listFiles();
        System.out.println(ff[12].getName());

На выходе получаем правильное имя файла:
Message_ЦБД_001.zip

Читать далее java неверно читаются имена файлов на сервере через FTPClient и список всех кодировок