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

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

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

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

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

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

русские буквы загонялись в базу через IBExpert? или из джавы? при подключении JBird lc_type правильный был?
...
Рейтинг: 0 / 0
25.06.2004, 13:18:20
    #32577364
Darova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка базы при переносе с Windows на Linux
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
25.06.2004, 13:22:45
    #32577382
Darova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка базы при переносе с Windows на Linux
fedd
очень странно. странно, что в IБExperte русские буквы в юникоде_фсс читаются нормально. это означает, что они там неправильно хранятся - не как русские буквы в юникод-фсс.

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

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

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

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

Тогда каким же макаром я создал базу в IBExpert'е и загнал туда русские буХовки и потом в тестовом варианте поставил Firebird + Tomcat на винду и в веб-приложении коннектился к базе с lc_ctype=utf8 и все было нормально.
Какой версий IBExpert'а вы пользуетесь? У меня 2004.6.17.1
...
Рейтинг: 0 / 0
25.06.2004, 14:21:26
    #32577543
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка базы при переносе с Windows на Linux
Утомил.
Всё.
В сад.
К Хвастунову за разъяснениями.
...
Рейтинг: 0 / 0
25.06.2004, 14:28:19
    #32577562
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка базы при переносе с Windows на Linux
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
25.06.2004, 14:37:00
    #32577583
Darova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка базы при переносе с Windows на Linux
Вот ех...й бабай, из проги на джаве, вставил в в базу новую запись с русским текстом, теперь эта запись в линуксе выводится нормально, а вот в IBExpert'е уже пошли крякозяблики, но все равно не понятно, почему же тогда под виндой джава выгребала из базы тот русский "мусор", который вставил IBExpert
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Кодировка базы при переносе с Windows на Linux / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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