powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0 isql и скрипт в кодировке dos866
5 сообщений из 5, страница 1 из 1
Firebird 3.0 isql и скрипт в кодировке dos866
    #38453492
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу сюда, поскольку в девеле русские буквы не оценят.

Что-то странное наблюдаю:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> set names dos866;
SQL> shell chcp 866;
Aktivní znaková stránka: 866
SQL> shell type c:\test.txt;
cp866: абвгде
win1251: рстуфх
utf-8: ╨░╨▒╨▓╨│╨┤╨╡
koi8: ┴┬╫╟─┼
SQL> shell type aa.sql;
create table t ("Значение1" varchar(30) character set dos866, "Значение2" integer);
insert into t values('Петров',150);
insert into t values('Иванов',200);
insert into t values('Петров',23);
insert into t values('Петров',70);
insert into t values('Иванов',43);
insert into t values('Казаченко',12);
insert into t values('Романенко',321);


Я установил NAMES в dos866.
Консоль работает в 866-й, что доказывает type test.txt.
Скрипт тоже в 866-й, что доказывает его type.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> connect test user sysdba password masterkey;
Database:  test, User: sysdba
SQL> select mon$character_set_id from mon$attachments;

MON$CHARACTER_SET_ID
====================
                  48
                   0
                   0


Тут всё правильно, чарсет конекта dos866.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> set echo on;
SQL> in aa.sql;
in aa.sql;
create table t ("╪- з?-Ё?1" varchar(30) character set dos866, "╪- з?-Ё?2" integer);
insert into t values('??ваRў',150);
insert into t values('?ў -Rў',200);
insert into t values('??ваRў',23);
insert into t values('??ваRў',70);
insert into t values('?ў -Rў',43);
insert into t values('? § з?-ЄR',12);
insert into t values('?R┐ -?-ЄR',321);


Что это за фигня? Беглый осмотр исходников isql перекодировки не показывает. Когда текст в 866-й превратился в "кракозябры"?
...
Рейтинг: 0 / 0
Firebird 3.0 isql и скрипт в кодировке dos866
    #38453505
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

а в 2.5 это нормально работает?
...
Рейтинг: 0 / 0
Firebird 3.0 isql и скрипт в кодировке dos866
    #38453520
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, в 2.5 это работает без проблем:
Код: sql
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.
SQL> set names dos866;
SQL> shell type c:\test.txt;
cp866: абвгде
win1251: рстуфх
utf-8: ╨░╨▒╨▓╨│╨┤╨╡
koi8: ┴┬╫╟─┼
SQL> shell type aa.sql;
create table t ("Значение1" varchar(30) character set dos866, "Значение2" integer);
insert into t values('Петров',150);
insert into t values('Иванов',200);
insert into t values('Петров',23);
insert into t values('Петров',70);
insert into t values('Иванов',43);
insert into t values('Казаченко',12);
insert into t values('Романенко',321);
SQL> connect test user sysdba password masterkey;
Database:  test, User: sysdba
SQL> select mon$character_set_id from mon$attachments;

MON$CHARACTER_SET_ID
====================
                  48

SQL> set echo on;
SQL> in aa.sql;
in aa.sql;
create table t ("Значение1" varchar(30) character set dos866, "Значение2" intege
r);
insert into t values('Петров',150);
insert into t values('Иванов',200);
insert into t values('Петров',23);
insert into t values('Петров',70);
insert into t values('Иванов',43);
insert into t values('Казаченко',12);
insert into t values('Романенко',321);
SQL>
...
Рейтинг: 0 / 0
Firebird 3.0 isql и скрипт в кодировке dos866
    #38453542
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И таки да, если кодировку поменять на 1251, то всё работает нормально и в 3.0, как можно
видеть
в
соседнем топике
.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0 isql и скрипт в кодировке dos866
    #38453705
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказывается, это такой побочный эффект вызова setlocale(LC_CTYPE, ""), который как раз
вставили чтобы победить проблему с кодировками под линухом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0 isql и скрипт в кодировке dos866
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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