powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Кодировка базы при переносе с Windows на Linux
31 сообщений из 31, показаны все 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
Кодировка базы при переносе с Windows на Linux
    #32577622
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fedd Darova feddну.. видимо, не схавал... в доке написано, что хавает?
да в доке прописано, что можно использовать как обозначение utf8, так и UNICODE_FSS

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

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

если в Эксперте видны русские буквы - там не юникод. 100%. Не спорьте.
Да писал и UNICODE_FSS; в этих доках нету, это у меня де-то завалялся старый faq по jaybird'у 1.0, НО с параметром utf8 тоже работает по крайней мере на чтение, то есть работало, пока было под виндой...
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577633
Darova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МимопроходящийМляяяяяя...
Ну ты и упёртый...
У Хвастунова спроси, млин!
Тут: news://ibexpert.info/interbase.ibexpert.ru
Не спрошу, NNTP не работает, закрыт на прокси
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577640
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда не доставай. Сказано - не поддерживает, а ты упираешься.
...
Рейтинг: 0 / 0
Кодировка базы при переносе с Windows на Linux
    #32577699
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarovaВот ех...й бабай, из проги на джаве, вставил в в базу новую запись с русским текстом, теперь эта запись в линуксе выводится нормально, а вот в IBExpert'е уже пошли крякозяблики, но все равно не понятно, почему же тогда под виндой джава выгребала из базы тот русский "мусор", который вставил IBExpert

вы, видимо, все время lc_ctype меняете, поэтому у вас то так, то так...

Darovaс параметром utf8 тоже работает по крайней мере на чтение, то есть работало, пока было под виндой...

я предполагаю (не могу сейчас проверить), что с параметром utf8 драйвер работал как будто чарсет был NONE. (кажется я это уже писал...). естественно, что под линуксом этот NONE не те буквы выдает...

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


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