Witam serdecznie,
Chciałabym zapisać dane do Microsoft Access 2010 w formacie odpowiedniej dla tej bazy danych. Dane pobieram z pliku *.xls zapisuje mi je, ale bez polskich znaków. Dlatego chciałabym zmienić kodowanie. Próbowałam na wiele sposobów ale bez rezultatu:
int ilosc_arkuszy = 7;
for (int ii = 0; ii <= ilosc_arkuszy; ii++) {
Connection con = null;
Workbook NAZWA_PLIKU = null;
try {
CAPIO_KOSZTY = Workbook.getWorkbook(new File("ścieżka do pliku"));
Sheet arkusz= NAZWA_PLIKU.getSheet(ii);
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:kasia");
Statement sta = con.createStatement();
for (int i = 1; i < 2; i++) {
Cell kolum_nazwa = arkusz.getCell(0, i);
String k_ nazwa = kolum_ nazwa.getContents();
byte[] utf8Bytes = k_ nazwa.getBytes("UTF8");
byte[] defaultBytes = k_ nazwa.getBytes();
String roundTrip = new String(defaultBytes, "ANSI");
System.out.println("roundTrip = " + roundTrip);
/*
Charset charset = Charset.forName("windows-1250");
CharsetDecoder decoder = charset.newDecoder();
CharsetEncoder encoder = charset.newEncoder();
ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(k_ nazwa));
CharBuffer cbuf = decoder.decode(bbuf);
String out = cbuf.toString();
*/
System.out.println(" k_ nazwa = " + k_ nazwa );
sta.executeUpdate("INSERT INTO test"
+ "(t_id, nazwa)"
+ " VALUES (" + i + ",'" + roundTrip + ""')");
}
sta.close();
con.close();
NAZWA_PLIKU.close();
System.out.println("Odczyt zakończony sukcesem.");
} catch (Exception e) {
}
}
Jak zmienie tu :
String roundTrip = new String(defaultBytes, "ISO-8859-2");
na inny to w MS są różnice, są inne szlaczki
Szukałam w Internecie w jakim formacie dane MS Access są przechowywane, ale niestety nie znalazłam. Domyślam się że w windows-1250. Powyżej znajduje się przykład który konwertuje Stringa, ale w bazie danych są nadal szlaczki
Prosiłabym o skazanie czy dobrze konwertuje..