@Kirill4721

Как перекодировать строки из windows 1251 в читаемый вид в java?

Есть файл экселя в старом формате, с которого берутся строки посредством POI OldExcelExtracktor. проблема в том что эти строки выводятся не в той кодировке. (Øêàô ðàñïðåäåëèòåëüíûé îáðàçåö пример, английский язык выводится без проблем). В онлайн декодерах было выяснено что это кодировка windows-1251. Надобно перевести ее в читаемый вид. Как это сделать средствами Java?
Были попытки в виде
String s = oldExcelExtractor.getText();
System.out.println(new String(s.getBytes("windows-1251"),"UTF-8"))

Результат: все символы кириллицы стали ???????(вопросительными знаками).
Файл не подразумевается открывать руками. Он качается с почты. Если файл открыть /сохранить/закрыть руками то никаких проблем нет. все свободно отображается без указания кодировок. Файл берется JFileChooser-ом. Т.е. примерно так:
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filterExcel = new FileNameExtensionFilter("Excel", "xls");
chooser.setFileFilter(filterExcel);
int ret = chooser.showDialog(null, "Открыть файл");
if (ret == JFileChooser.CANCEL_OPTION) {
            return;
        }
if (ret == JFileChooser.APPROVE_OPTION) {
            File file = chooser.getSelectedFile();
            OldExcelExtractor oldExcelExtractor = new OldExcelExtractor(file);
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
@Wan-Derer
Зобанели на Хабре, волки́ ;((
Так получилось :)
String a = new String("Øêàô ðàñïðåäåëèòåëüíûé îáðàçåö".getBytes("Windows-1252"), "Windows-1251");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
Вот так должно заработать:
System.out.println(new String(s.getBytes(StandardCharsets.UTF_8)));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 12:03
75000 руб./за проект
25 апр. 2024, в 11:49
25000 руб./за проект
25 апр. 2024, в 11:37
40000 руб./за проект