powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как решить проблему с кириллицей в FireBird?
2 сообщений из 2, страница 1 из 1
Как решить проблему с кириллицей в FireBird?
    #39417471
drno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

создал БД и таблицу FireBird 3 с полем в кириллице

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> CREATE DATABASE 'D:\databases\Firebird\data\example.fdb' USER 'SYS' PASSWORD 'пароль' DEFAULT CHARACTER SET WIN1251;
SQL> create table customers(id int not null,name varchar(50));
SQL> insert into customers values (1,'first');
SQL> insert into customers values (2,'второй');
SQL> commit;
SQL> select * from customers;

          ID NAME
============ ==================================================
           1 first
           2 второй



Написал клиент на Java с encoding WIN1251 результата

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Properties props = new Properties();
        props.setProperty("user", "sys");
        props.setProperty("password", "пароль");
        props.setProperty("encoding", "WIN1251");
        String connection_string=connection_string="jdbc:firebirdsql:192.168.10.41/3050:D:\\databases\\Firebird\\data\\example.fdb";
        boolean st = false;
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String Connection_Status = "";
        String value;
        Integer count_values;

        try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            Connection connection = DriverManager.getConnection(connection_string, props);
            connection.close();
            Connection_Status = "Подключение к БД " + connection_string + " прошло успешно.";

            try {

                //loading drivers for mysql
                Class.forName("org.firebirdsql.jdbc.FBDriver");

                //creating connection with the database
                con = DriverManager.getConnection
                        (connection_string, props);
                ps = con.prepareStatement
                        (Text_Script);
                //ps.setString(1, uname);
                //ps.setString(2, pass);
                rs = ps.executeQuery();
                //st = rs.next();
                value = "";
                count_values = 0;
                // iterate through the java resultset
                while (rs.next()) {
                    count_values = count_values + 1;
                    value = value + rs.getString("ID") + "; ";
                    value = value + rs.getString("name") +"; ";
}



но в результате получаю абракадабру вместо кириллицы
Код: xml
1.
1; first; 2; ўв®а®©;



Как решить эту проблему?
...
Рейтинг: 0 / 0
Как решить проблему с кириллицей в FireBird?
    #39417516
drno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
drno,

по-молчанию сеанс cmd имеет кодировку 866.
если мы создали БД с 1251 и делаем insert в cmd, то перед подключением к БД необходимо переключить кодовую страницу на 1251

Код: xml
1.
2.
3.
4.
c:\Server\Apache\bin>chcp
Текущая кодовая страница: 866
c:\Server\Apache\bin>chcp 1251
Текущая кодовая страница: 1251




и только потом подключать к БД и выполнять insert

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
SQL> select * from customers;

          ID NAME
============ ==================================================
           1 first
           2 ўв®а®©
           4 зҐвўҐавл©
           5 пятый
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как решить проблему с кириллицей в FireBird?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]