Witam,
piszę w Javie program zaczytujący dane z bazy i wpisujący je do pliku oraz na ekran (przez webserwis).
Mam poważny problem z polskimi literami. Nie jestem w stanie dojść w jakim formacie je otrzymuję,
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://192.168.1.100/umk?user=***&password=***");
stmt = conn.createStatement();
stmt.execute("set names 'utf8'");
stmt.executeQuery("select id, nazwa, from moja_tabela");
rs = stmt.getResultSet();
W miejsce polskich liter mam znaki zapytania. "Zażółć gęślą jaźń" -> ani jedna polska litera się nie zachowała.
Polecenie wydane w konsoli (env |grep LANG) zwraca "LANG=pl_PL.UTF-8".
Próbowałem również konstrukcji:
stmt.executeQuery("select id, convert(nazwa using 'utf8') naz from moja_tabela");
Eksperymentowałem z "set names". dawałem "latin2", "latin1", "cp1250" i jeszcze kilka innych, z którymi kiedykolwiek miałem do czynienia. Ani razu nie zobaczyłem ani jednego polskiego znaku. Dane w tabeli zapisane są w Windows-1250.
Gdy czytam za pomocą PHP z tej samej tabeli używam "set names 'latin2'" i nic więcej nie muszę robić. Strona jest oczywiście w "iso-8859-2".
Jak uzyskać polskie znaki ?