Привет!

>> Влад, умоляю, ставлю бутылку 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.*" %>
<html>
    <head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8"></head>
    <body>
    <%
        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();
    %><br><%
        utf_correct = br.readLine();
        out.println("Correct string RO: " + utf_correct);
        ps.setString(1, utf_correct);
        ps.executeUpdate();
    %><br><%
        utf_correct = br.readLine();
        out.println("Correct string RU: " + utf_correct);
        ps.setString(1, utf_correct);
        ps.executeUpdate();
        br.close();
    %><br><br><%
        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);
    %><br><%
            i++;
        }
    %>
    </body>
</html>
---------------------------------------------------

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


-- 
Best regards,
 Sergey                            mailto:[EMAIL PROTECTED]


Reply via email to