Re: Java (Jaybird) +UTF8 (Решение)
Sergey Mereutsa пишет: И о jaybirdwiki тоже :) Там список параметров есть, а какой-нить минитуториал для полных чайников спас бы много нервов и уменьшил бы энтропию Вселенной :) Тут как бы это сказать .. Сначала наверное нужно вообще представлять себе, что такое работа через JDBC, JayBird это реализация стандартного механизма доступа к БД из Java. Расписывать спецификацию JDBC для чайников в рамках конкретной реализации, когда она давно расписана в других местах? И уж по чем, но по Java есть нормальный tutorial и прямо на сайте Sun. Другое дело, что по началу не знаешь где найти нужную информацию, но нужно искать, и прежде всего на сайте производителя. -- С наилучшими пожеланиями, Николай Войнов. http://nvoynov.blogspot.com/
Re[2]: Java (Jaybird) +UTF8 (Решение)
Привет! >> Так ведь не компилировалось оно с этими пропертями. Приходилось их >> комментировать. Вот ненавижу, когда в _примерах_ для людей, начинающих >> с нуля, показывают только куски кода :) > Теперь ясно.. Я фразу "Но материццо" неправильно интерпретировал. С > примерами Ты, конечно, прав. Вопрос - ты о jaybirdwiki или о каком-то > другом ресурсе? И о jaybirdwiki тоже :) Там список параметров есть, а какой-нить минитуториал для полных чайников спас бы много нервов и уменьшил бы энтропию Вселенной :) -- Best regards, Sergeymailto:[EMAIL PROTECTED]
Re: Java (Jaybird) +UTF8 (Решение)
так вроде ж оно раньше не работало... ну да ладно. Угу, не работало, потому что инклудов нужных не было. Ну не жабисты мы Х... а как оно компилировалось? Так ведь не компилировалось оно с этими пропертями. Приходилось их комментировать. Вот ненавижу, когда в _примерах_ для людей, начинающих с нуля, показывают только куски кода :) Теперь ясно.. Я фразу "Но материццо" неправильно интерпретировал. С примерами Ты, конечно, прав. Вопрос - ты о jaybirdwiki или о каком-то другом ресурсе? Роман
Re[2]: Java (Jaybird) +UTF8 (Решение)
Привет! >>> так вроде ж оно раньше не работало... ну да ладно. >> >> Угу, не работало, потому что инклудов нужных не было. Ну не жабисты мы > Х... а как оно компилировалось? Так ведь не компилировалось оно с этими пропертями. Приходилось их комментировать. Вот ненавижу, когда в _примерах_ для людей, начинающих с нуля, показывают только куски кода :) -- Best regards, Sergeymailto:[EMAIL PROTECTED]
Re: Java (Jaybird) +UTF8 (Решение)
так вроде ж оно раньше не работало... ну да ладно. Угу, не работало, потому что инклудов нужных не было. Ну не жабисты мы Х... а как оно компилировалось?
Re[2]: Java (Jaybird) +UTF8 (Решение)
Привет! > так вроде ж оно раньше не работало... ну да ладно. Угу, не работало, потому что инклудов нужных не было. Ну не жабисты мы :)) -- Best regards, Sergeymailto:[EMAIL PROTECTED]
Re: Java (Jaybird) +UTF8 (Решение)
connInfo.put("charSet", "UTF-8"); //Works correct Правильно. "UTF-8" имя чарсета в Java (другой вариант Cp1251). //connInfo.put("encoding", "UTF8"); //Works correct too Тоже правильно, encoding ожидает имя чарсета в базе (например WIN1251) //connInfo.put("charSet", "UTF8"); //Incorrect:The server encountered an internal error... Неправильно - JVM не знает, что такое UTF8. Всем откликнувшимся - спасибо, ларчик открывался просто. Теперь у меня спокойная рабочая обстановка на работе и дома :)) так вроде ж оно раньше не работало... ну да ладно.
Re: Re[2]: Java (Jaybird) +UTF8 (Решение)
"Sergey Mereutsa" > >> Влад, умоляю, ставлю бутылку Firebird - покажи пример, как этот чарсет > >> прописать! Везде говорится, что его надо указывать, но как - зажали. > > Так, похоже Влад завязал и уже не пьет. Куда мир катится... Он прсто в яве ни в зуб ногой (точнее - в Jaybird) :) Плюс траур по угнанной аське и первое число на работе - бухи как обычно коней мочат (а мы их сушим :) ... > Всем откликнувшимся - спасибо, ларчик открывался просто. Теперь у меня > спокойная рабочая обстановка на работе и дома :)) Думаю, тут без бутылки Firebird таки не обошлось :))) -- Хорсун Влад
Re[2]: Java (Jaybird) +UTF8 (Решение)
Привет! >> Влад, умоляю, ставлю бутылку Firebird - покажи пример, как этот чарсет >> прописать! Везде говорится, что его надо указывать, но как - зажали. Так, похоже Влад завязал и уже не пьет. Куда мир катится... >> Делали так: >> Properties connInfo = new Properties(); >> connInfo.put("user", "sysdba"); >> connInfo.put("password", "masterkey"); >> connInfo.put("charSet", "UTF-8"); >> Connection con = DriverManager.getConnection (url, connInfo); >> .. >> >> Но материццо!!! > Вроде правильно, можно попробовать вместо charSet указать > put("encoding", "UTF8"). В общем, все оказалось гораздо проще: --- 1. добавляем <%@ page import ="java.util.*" %> 2. вместо строки Connection con = DriverManager.getConnection (url,"sysdba","masterkey"); пишем Properties connInfo = new java.util.Properties(); connInfo.put("user", "sysdba"); connInfo.put("password", "masterkey"); connInfo.put("charSet", "UTF-8"); //Works correct //connInfo.put("encoding", "UTF8"); //Works correct too //connInfo.put("charSet", "UTF8"); //Incorrect:The server encountered an internal error... Connection con = DriverManager.getConnection (url, connInfo); 3. запускаем - все работает..;-) все три строки (EN, RO и RU) записываются в базу в уникоде и правильно считываются из нее... 4. нужно еще будет при чтении первой строки пропустить 3 первых байта... в этом варианте они тоже вписались в базу... хотя в результате jsp и не видны... но это уже другая история...:-)) <[EMAIL PROTECTED] contentType="text/html"%> <[EMAIL PROTECTED] pageEncoding="UTF-8"%> <%@ page import ="java.net.*" %> <%@ page import ="java.sql.*" %> <%@ page import ="java.io.*" %> <%@ page import ="java.util.*" %> <% String url = "jdbc:firebirdsql://localhost:3050/test1"; Class.forName("org.firebirdsql.jdbc.FBDriver"); //Load driver //Connection con = DriverManager.getConnection (url,"sysdba","masterkey"); Properties connInfo = new java.util.Properties(); connInfo.put("user", "sysdba"); connInfo.put("password", "masterkey"); connInfo.put("charSet", "UTF-8"); //Works correct //connInfo.put("encoding", "UTF8"); //Works correct too //connInfo.put("charSet", "UTF8"); //Incorrect : The server encountered an internal error... Connection con = DriverManager.getConnection (url, connInfo); Statement stmt = con.createStatement(); //Let's read Unicode format from file. There are lines: three languages BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("D:/db/WebApplication2/utf8.txt"),"UTF-8")); String utf_correct = br.readLine(); out.println("Correct string EN: " + utf_correct); String str = "INSERT INTO language (name) VALUES(?)"; PreparedStatement ps = con.prepareStatement(str); ps.setString(1, utf_correct); ps.executeUpdate(); %><% utf_correct = br.readLine(); out.println("Correct string RO: " + utf_correct); ps.setString(1, utf_correct); ps.executeUpdate(); %><% utf_correct = br.readLine(); out.println("Correct string RU: " + utf_correct); ps.setString(1, utf_correct); ps.executeUpdate(); br.close(); %><% stmt = con.createStatement(); ResultSet result = stmt.executeQuery("SELECT * FROM language"); int i=0; while (result.next()) { int id = result.getInt("language_id"); String name = result.getString("name"); out.println("ID: " + id); out.println("Name: " + name); %><% i++; } %> --- Всем откликнувшимся - спасибо, ларчик открывался просто. Теперь у меня спокойная рабочая обстановка на работе и дома :)) -- Best regards, Sergeymailto:[EMAIL PROTECTED]