Архив рубрики: j2se

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 кодировка) нужно сразу после создания класса до того, как он приконектился. Например

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

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