ODBC-JDBC Bridge Кодировка символов Windows-1251 (кириллица)

У меня есть файл базы данных с кодировкой окна 1251. Я создал источник данных ODBC для этого файла и хотел бы получить к нему доступ с помощью моста JDBC-ODBC из java со следующим кодом:

PrintStream ps = new PrintStream(System.out, true, "UTF-8");
System.out.println("TEST: Русский язык");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Properties properties = new Properties();
properties.put("charSet", "windows-1251");
Connection conn = DriverManager.getConnection( "jdbc:odbc:test_ds",properties);
Statement statement = conn.createStatement();
String sql = "SELECT * FROM table";
ResultSet resultSet = statement.executeQuery(sql);

while (resultSet.next()) {            
        System.out.println(resultSet.getString("DESC"));
}

Кодировка символов подходит для тестового println (2-я строка), но кодировка для данных из базы данных неверна.

Я могу открыть файл dbf с помощью LibreOffice с той же кодировкой, где все правильно.

Есть ли шанс правильно выставить кодировку?

Можно ли в строке подключения указать кодировку подключения?

РЕДАКТИРОВАТЬ: после дальнейшего расследования я думаю, что проблема связана с ODBC. Я попытался открыть указанный источник данных в Excel, но кодировка была неправильной. (У меня не было возможности установить кодировку ни для соединения odbc, ни для соединения Excel)


person Hubidubi    schedule 24.03.2014    source источник


Ответы (1)


У меня это работает с кириллическими символами:

properties.put("charSet", "Cp1251");
person Borislav Markov    schedule 09.08.2017