Тема: Кодування в форматі DBF і DAT
Доброго дня всім.
В мене файлики банківської виписка в форматі DBF і DAT. коли вивожу їх зміст в консоль, пише крякозяблики, те саме показує в jtextarea.(слово "сума" написано кирилецею в коді)
Для читання використовую о це: com.linuxense.javadbf.DBFReader(може проблема в ньому). Кодування обох файлів UTF-8, так показує метод isr.getEncoding()
сума: 4.000000000| desc: ÒÎÂÀÐÈÑÒÂÎ Ç ÎÁÌÅÆÅÍÎÞ | ÒÎÂÀÐÈÑÒÂÎ Г
Коли ж я відкриваю цей файл в writer запитує кодування, ставлю windows 1251 і все чудово показує.
ось такий код:
try {
    String dbfPath = "2309201.dbf";
    InputStream inputStream = new FileInputStream(dbfPath);
    InputStreamReader isr = new InputStreamReader(inputStream);
    DBFReader reader = new DBFReader(inputStream);
    Object[] rowObjects; BigDecimal price = new BigDecimal(0); String description = "", ansiString = "";
    while ((rowObjects = reader.nextRecord()) != null) {
        price = (BigDecimal) rowObjects[12];
        description = (String) rowObjects[4];
        ansiString = new String(description.getBytes("UTF8"), "Windows-1251");
        System.out.println("сума: "+price+ "| desc: "+description+" | "+ ansiString);
    }
    inputStream.close();
    JFrame f = new JFrame();
    f.setBounds(100, 100, 700, 500);
    JTextArea textArea = new JTextArea();
    textArea.setText("сума: "+ price +"\nопис: "+ description+"\n"+ansiString);
    f.add(textArea);
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} catch (Exception e) {
    e.printStackTrace();
}