powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Кодировка базы при переносе с Windows на Linux
25 сообщений из 31, страница 1 из 2
Кодировка базы при переносе с Windows на Linux
    #32576283
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сервер FirebirdSS-1.5.0.4290 и на винде и под линуксом, база создавалась под виндой с кодировкой UNICODE_FSS, при попытке переноса базы на линукс путем backup/restore под линуксом все запросы к строковым полям с русскими символами возвращают "квадратики", пробовал в самой программе делать перекодировки - не помогает :(
Как такое побороть? Может кто с таким сталкивался?
PS. Локаль utf-8.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32576343
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шрифты?
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32576356
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да не, со шрифтами все в порядке я ж по-русски тут пишу :) из под линуха, хотя только что на всяк случай попробовал из java чтонить распечатать в консоль - все выдало по-русски, нормально.
PS. Забыл упомянуть, что работаю с базой через JayBird 1.5RC2. Прога есесно на джаве...
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32576430
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чем делали запросы под линуксом, которые вернули квадратики? пробовали тем же делать по виндоус? уверен, что тоже квадратики вернет.

раз джавная программа вернула нормальные русские буквы, может все нормально? просто не все (я таких ваще не знаю) неджавные программы понимают юникод в интербейсе.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32576586
Somebody2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какой оконый менеджер (кде, гном, ...) и какой версии? Хотя я почти уверен, что кде. Как всегда
лень мне пускатья в длинные объяснения, поэтому попробуйте так:
Создается скрипт run.sh примерно следующего содержания:
#!/bin/bash
export LANG=локаль
/cllient/programm
#=================
Далее, вместо клиентской проги запускается данный скрипт. Может поможет, а может и нет.

P.S. Не знаю как сейчас, но еще с год назад utf-8 была самой дебильной (в плане реализации)
локалью . С остальными локалями (koi8, dos, win) у меня проблем не было.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577335
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
feddчем делали запросы под линуксом, которые вернули квадратики? пробовали тем же делать по виндоус? уверен, что тоже квадратики вернет.

раз джавная программа вернула нормальные русские буквы, может все нормально? просто не все (я таких ваще не знаю) неджавные программы понимают юникод в интербейсе.
"квадратики" не вернет, я попробовал с виндовой машины подконнектится к моему серверу Firebird, работающему под линуксом, и в IBExpert'е все русские символы читаются нормально...
Запросы делал из sql плагина IntelliJ IDEA, но не в этом суть я уже писал и простенький тестовый класс и запускал его в консоли - таже ситуация
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577352
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darovaя попробовал с виндовой машины подконнектится к моему серверу Firebird, работающему под линуксом, и в IBExpert'е все русские символы читаются нормально...
Наивный юноша, IBExpert не умеет корректно работать с UNICODE.
Ваааааще!
Если он показывает русские буХовки , знач нихрена это не UNICODE!
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577357
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darova feddчем делали запросы под линуксом, которые вернули квадратики? пробовали тем же делать по виндоус? уверен, что тоже квадратики вернет.

раз джавная программа вернула нормальные русские буквы, может все нормально? просто не все (я таких ваще не знаю) неджавные программы понимают юникод в интербейсе.
"квадратики" не вернет, я попробовал с виндовой машины подконнектится к моему серверу Firebird, работающему под линуксом, и в IBExpert'е все русские символы читаются нормально...
Запросы делал из sql плагина IntelliJ IDEA, но не в этом суть я уже писал и простенький тестовый класс и запускал его в консоли - таже ситуация

очень странно. странно, что в IБExperte русские буквы в юникоде_фсс читаются нормально. это означает, что они там неправильно хранятся - не как русские буквы в юникод-фсс.

русские буквы загонялись в базу через IBExpert? или из джавы? при подключении JBird lc_type правильный был?
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577364
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Somebody2А какой оконый менеджер (кде, гном, ...) и какой версии? Хотя я почти уверен, что кде. Как всегда
лень мне пускатья в длинные объяснения, поэтому попробуйте так:
Создается скрипт run.sh примерно следующего содержания:
#!/bin/bash
export LANG=локаль
/cllient/programm
#=================
Далее, вместо клиентской проги запускается данный скрипт. Может поможет, а может и нет.
При чем тут оконный менеджер? Да KDE 3.2.2, но тестовый класс то я запускал в консоли
Код: plaintext
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.
import java.io.UnsupportedEncodingException;
import java.sql.*;

public class ConnectionTest {
    public static void main(String[] args) {
        try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            Connection connection;
            try {
                connection = DriverManager.getConnection("jdbc:firebirdsql://localhost:3050/C3Repository?" +
                        "lc_ctype=utf8&user=&password=");
                Statement statement = connection.createStatement();
                ResultSet resultSet;
                try {
                    resultSet = statement.executeQuery("select * from \"Employee\"");
                    System.out.println("code\tname");
                    while (resultSet.next()) {
                        int code = resultSet.getInt("code");
                        String name = "*";
                        try {
                            name = new String(resultSet.getString("lastName").getBytes(), "UTF8");
                        } catch (UnsupportedEncodingException ex) {
                            System.out.println(ex);
                        }
                        System.out.println(code + "\t" + name);
                    }
                } catch (SQLException ex) {
                    System.out.println("Can't execute query");
                    System.out.println(ex);
                }
            } catch (SQLException ex) {
                System.out.println("Can't get connection");
                System.out.println(ex);
            }
        } catch (ClassNotFoundException ex) {
            System.out.println("Can't load Firebird driver");
        }
    }
}
Кусок кода там где получаю строковые данные менял по разному - пытался методом тыка перекодировку сделать, но и даже если просто сразу получать из resultSet'а строку - таже картина
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577382
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fedd
очень странно. странно, что в IБExperte русские буквы в юникоде_фсс читаются нормально. это означает, что они там неправильно хранятся - не как русские буквы в юникод-фсс.

русские буквы загонялись в базу через IBExpert? или из джавы? при подключении JBird lc_type правильный был?
Если клиент базы, написаный на джаве работает под виндой, то все нормально
Да русские буквы загонялись из IBExpert, lc_ctype=utf8
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577388
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarovaДа русские буквы загонялись из IBExpert....

Значит, там с точки зрения utf8 полная белиберда... Эксперт пишет по байту на одну букву....
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577392
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пАафффффтАряю! Для упёртых.
IBExpert не умеет корректно работать с UNICODE.
Хоть что ты там напиши в параметрах коннекта!
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577397
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий
Наивный юноша, IBExpert не умеет корректно работать с UNICODE.
Ваааааще!
Если он показывает русские буХовки , знач нихрена это не UNICODE!
Тогда каким же макаром я создал базу в IBExpert'е и загнал туда русские буХовки и потом в тестовом варианте поставил Firebird + Tomcat на винду и в веб-приложении коннектился к базе с lc_ctype=utf8 и все было нормально.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577404
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darova Мимопроходящий
Наивный юноша, IBExpert не умеет корректно работать с UNICODE.
Ваааааще!
Если он показывает русские буХовки , знач нихрена это не UNICODE!
Тогда каким же макаром я создал базу в IBExpert'е и загнал туда русские буХовки и потом в тестовом варианте поставил Firebird + Tomcat на винду и в веб-приложении коннектился к базе с lc_ctype=utf8 и все было нормально.

по-моему, в JayBird надо писать lc_ctype=UNICODE_FSS. Наверно, он ваше utf8 проигнорировал. а базу создать можно в IБExpert...
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577410
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МимопроходящийпАафффффтАряю! Для упёртых.
IBExpert не умеет корректно работать с UNICODE.
Хоть что ты там напиши в параметрах коннекта!
Тогда просьба обьяснить что он при этом делает? И почему под виндой джавовые проги работали нормально и получали русские символы, а проблема возникла ТОЛЬКО ТОГДА когда базу перенес на линукс.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577413
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для самых упёртых повторю ещё раз. Мож дойдёт...
IBExpert не умеет корректно работать с UNICODE.
Параметр коннекта - это информация для сервера о том, в какой кодировке ты будешь отправлять ему буХовки. И всё. Не более того.
Что бы в базу покласть UTF-8, нужно сперва в этот самый UTF-8 законвертить. IBExpert этого не делает.
Те контролы, которые он использует, не поддерживают MultiByte-кодировки.
А делать конвертацию вручную, автор IBExpert отказывается.
Все претензии к А.Хвастунову.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577423
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fedd
по-моему, в JayBird надо писать lc_ctype=UNICODE_FSS. Наверно, он ваше utf8 проигнорировал. а базу создать можно в IБExpert...
Драйвер хавает и utf8 и utf-8 и UNICODE_FSS - все едино
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577429
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darova fedd
по-моему, в JayBird надо писать lc_ctype=UNICODE_FSS. Наверно, он ваше utf8 проигнорировал. а базу создать можно в IБExpert...
Драйвер хавает и utf8 и utf-8 и UNICODE_FSS - все едино

ну.. видимо, не схавал... в доке написано, что хавает?
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577456
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
feddну.. видимо, не схавал... в доке написано, что хавает?
да в доке прописано, что можно использовать как обозначение utf8, так и UNICODE_FSS
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577501
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fedd
Значит, там с точки зрения utf8 полная белиберда... Эксперт пишет по байту на одну букву....
а мне что-то помнится, что при выборе кодировки базы(строкового типа) юникод - он пишет 3 байта
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577507
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мляяяяяя...
Ну ты и упёртый...
У Хвастунова спроси, млин!
Тут: news://ibexpert.info/interbase.ibexpert.ru
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577522
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МимопроходящийДля самых упёртых повторю ещё раз. Мож дойдёт...
IBExpert не умеет корректно работать с UNICODE.
Параметр коннекта - это информация для сервера о том, в какой кодировке ты будешь отправлять ему буХовки. И всё. Не более того.
Что бы в базу покласть UTF-8, нужно сперва в этот самый UTF-8 законвертить. IBExpert этого не делает.
Те контролы, которые он использует, не поддерживают MultiByte-кодировки.
А делать конвертацию вручную, автор IBExpert отказывается.
Все претензии к А.Хвастунову.
Тогда как вы прокомментируете это

Тогда каким же макаром я создал базу в IBExpert'е и загнал туда русские буХовки и потом в тестовом варианте поставил Firebird + Tomcat на винду и в веб-приложении коннектился к базе с lc_ctype=utf8 и все было нормально.
Какой версий IBExpert'а вы пользуетесь? У меня 2004.6.17.1
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577543
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Утомил.
Всё.
В сад.
К Хвастунову за разъяснениями.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577562
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darova feddну.. видимо, не схавал... в доке написано, что хавает?
да в доке прописано, что можно использовать как обозначение utf8, так и UNICODE_FSS

а можно ссылку?

ни здесь
http://www.firebirdsql.org/index.php?op=devel&sub=jdbc&id=faq#23
ни здесь
http://www.ibphoenix.com/main.nfs?a=ibphoenix&l=;IBPHOENIX.FAQS;NAME=%27JayBird%27
не нашел. предварительный диагноз - драйвер не схавал, и писал по байту на русскую букву, как если было NONE.

если в Эксперте видны русские буквы - там не юникод. 100%. Не спорьте.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577583
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот ех...й бабай, из проги на джаве, вставил в в базу новую запись с русским текстом, теперь эта запись в линуксе выводится нормально, а вот в IBExpert'е уже пошли крякозяблики, но все равно не понятно, почему же тогда под виндой джава выгребала из базы тот русский "мусор", который вставил IBExpert
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Кодировка базы при переносе с Windows на Linux
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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