Re: Java (Jaybird) +UTF8 (Решение)

2007-02-03 Пенетрантность Николай Войнов


Sergey Mereutsa пишет:


И о jaybirdwiki тоже :)
Там список параметров есть, а какой-нить минитуториал для полных
чайников спас бы много нервов и уменьшил бы энтропию Вселенной :)


Тут как бы это сказать .. Сначала наверное нужно вообще представлять 
себе, что такое работа через JDBC, JayBird это реализация стандартного 
механизма доступа к БД из Java. Расписывать спецификацию JDBC для 
чайников в рамках конкретной реализации, когда она давно расписана в 
других местах?


И уж по чем, но по Java есть нормальный tutorial и прямо на сайте Sun. 
Другое дело, что по началу не знаешь где найти нужную информацию, но 
нужно искать, и прежде всего на сайте производителя.


--
С наилучшими пожеланиями,
Николай Войнов.
http://nvoynov.blogspot.com/



Re[2]: Java (Jaybird) +UTF8 (Решение)

2007-02-03 Пенетрантность Sergey Mereutsa

Привет!

>> Так ведь не компилировалось оно с этими пропертями. Приходилось их
>> комментировать. Вот ненавижу, когда в _примерах_ для людей, начинающих
>> с нуля, показывают только куски кода :)

> Теперь ясно.. Я фразу "Но материццо" неправильно интерпретировал. С 
> примерами Ты, конечно, прав. Вопрос - ты о jaybirdwiki или о каком-то 
> другом ресурсе?

И о jaybirdwiki тоже :)
Там список параметров есть, а какой-нить минитуториал для полных
чайников спас бы много нервов и уменьшил бы энтропию Вселенной :)



-- 
Best regards,
 Sergeymailto:[EMAIL PROTECTED]




Re: Java (Jaybird) +UTF8 (Решение)

2007-02-02 Пенетрантность Roman Rokytskyy



так вроде ж оно раньше не работало... ну да ладно.

Угу, не работало, потому что инклудов нужных не было. Ну не жабисты мы



Х... а как оно компилировалось?


Так ведь не компилировалось оно с этими пропертями. Приходилось их
комментировать. Вот ненавижу, когда в _примерах_ для людей, начинающих
с нуля, показывают только куски кода :)


Теперь ясно.. Я фразу "Но материццо" неправильно интерпретировал. С 
примерами Ты, конечно, прав. Вопрос - ты о jaybirdwiki или о каком-то 
другом ресурсе?


Роман



Re[2]: Java (Jaybird) +UTF8 (Решение)

2007-02-02 Пенетрантность Sergey Mereutsa

Привет!

>>> так вроде ж оно раньше не работало... ну да ладно.
>> 
>> Угу, не работало, потому что инклудов нужных не было. Ну не жабисты мы

> Х... а как оно компилировалось?

Так ведь не компилировалось оно с этими пропертями. Приходилось их
комментировать. Вот ненавижу, когда в _примерах_ для людей, начинающих
с нуля, показывают только куски кода :)


-- 
Best regards,
 Sergeymailto:[EMAIL PROTECTED]




Re: Java (Jaybird) +UTF8 (Решение)

2007-02-02 Пенетрантность Roman Rokytskyy



так вроде ж оно раньше не работало... ну да ладно.


Угу, не работало, потому что инклудов нужных не было. Ну не жабисты мы


Х... а как оно компилировалось?



Re[2]: Java (Jaybird) +UTF8 (Решение)

2007-02-01 Пенетрантность Sergey Mereutsa

Привет!

> так вроде ж оно раньше не работало... ну да ладно.

Угу, не работало, потому что инклудов нужных не было. Ну не жабисты мы
:))



-- 
Best regards,
 Sergeymailto:[EMAIL PROTECTED]




Re: Java (Jaybird) +UTF8 (Решение)

2007-02-01 Пенетрантность Roman Rokytskyy



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 (Решение)

2007-02-01 Пенетрантность Horsun Vlad

"Sergey Mereutsa"
> >> Влад, умоляю, ставлю бутылку Firebird - покажи пример, как этот чарсет
> >> прописать! Везде говорится, что его надо указывать, но как - зажали.
>
> Так, похоже Влад завязал и уже не пьет. Куда мир катится...

Он прсто в яве ни в зуб ногой (точнее - в Jaybird) :)

Плюс траур по угнанной аське и первое число на работе - бухи как обычно
коней мочат (а мы их сушим :)

...

> Всем откликнувшимся - спасибо, ларчик открывался просто. Теперь у меня
> спокойная рабочая обстановка на работе и дома :))

Думаю, тут без бутылки Firebird таки не обошлось :)))

-- 
Хорсун Влад




Re[2]: Java (Jaybird) +UTF8 (Решение)

2007-02-01 Пенетрантность Sergey Mereutsa

Привет!


>> Влад, умоляю, ставлю бутылку 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]