zapis polskich znaków do MS Access

0

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..

0

poprawiłam, działa poprawnie. Może komuś się przyda:

int ilosc_arkuszy = 7;
 
        for (int ii = 0; ii <= ilosc_arkuszy; ii++) {
            Connection con = null;
            Workbook NAZWA_PLIKU = null;
            try {
 		Properties props = new Properties();
                props.put("charSet", "Cp1250");

                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", props);
                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);

 
                    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) {
            } 
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1