Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0 isql и скрипт в кодировке dos866 / 5 сообщений из 5, страница 1 из 1
05.11.2013, 17:45:11
    #38453492
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 3.0 isql и скрипт в кодировке dos866
Пишу сюда, поскольку в девеле русские буквы не оценят.

Что-то странное наблюдаю:
Код: 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
05.11.2013, 17:55:03
    #38453505
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 3.0 isql и скрипт в кодировке dos866
Dimitry Sibiryakov,

а в 2.5 это нормально работает?
...
Рейтинг: 0 / 0
05.11.2013, 18:06:10
    #38453520
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 3.0 isql и скрипт в кодировке dos866
Да, в 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
05.11.2013, 18:20:00
    #38453542
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 3.0 isql и скрипт в кодировке dos866
И таки да, если кодировку поменять на 1251, то всё работает нормально и в 3.0, как можно
видеть
в
соседнем топике
.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.11.2013, 21:04:07
    #38453705
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 3.0 isql и скрипт в кодировке dos866
Оказывается, это такой побочный эффект вызова setlocale(LC_CTYPE, ""), который как раз
вставили чтобы победить проблему с кодировками под линухом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0 isql и скрипт в кодировке dos866 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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