powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
18 сообщений из 18, страница 1 из 1
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573453
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Много букв, извиняйте. Топик-памятка (себе и остальным).

Появилось два вопроса.
1) почему при работе с базой, расположенной на LINUX , утилитой isql, расположденной на WINDOWS , в базу невозможно передать скрипт, создающий PSQL-объект с кириллицей в своем теле. В итоге, будет либо ошибка (malformed string) либо тело PSQL-объекта окажется с кракозябрами.
2) почему при работе с базой, расположенной на LINUX , утилитой isql, расположденной на LINUX , выполнить аналогичную п. 1 задачу можно ТОЛЬКО в одном случае: если *не* указывать в строке коннекта параметр чарсета (т.е. ключик -ch). А база, вроде бы, может быть создана с любым чарсетом.

Ниже приведены 4 варианта (по два на каждый тип расположения скрипта и утилиты isql).

РАЗДЕЛ 1. Cкрипт и isql - на WINDOWS машине.

В windows-блокноте создан скрипт, сохранён в файле trgsample.sql :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
recreate table t(id int); commit;
set term ^;
create or alter trigger t_bi for t
active after insert position 0
as
begin
  /*
     С точки зpения банальной эpудиции
     данный триггер создан в блокноте windows
   */
end^
set term ;^
commit;



Вариант 1. Эксперимент с базой, созданной с чарсетом WIN1251 .
Код: plaintext
1.
2.
[firebird@firebirdG]$ isql -q
SQL> create database 'tmp1251.fdb'  default character set win1251 ; commit;
SQL> quit;

1.1 Запускаю isql с виндовой машины:
Код: plaintext
C:\1INSTALL\FIREBIRD\FB_2_5\bin\isql 192.168.0.61:/u01/db/firebird/tmp1251.fdb -i trgsample.sql
Получаю закономерное (ввиду отсутствия set names = ...):
Код: plaintext
1.
2.
3.
4.
Statement failed, SQLSTATE = 42000
unsuccessful metadata update
-DEFINE TRIGGER failed
 -Malformed string 
After line 2 in file trgsample.sql

1.2 Повторяю эту команду, но добавляю к ней ключик с указанием чарсета коннекта:
Код: plaintext
C:\1INSTALL\FIREBIRD\FB_2_5\bin\isql 192.168.0.61:/u01/db/firebird/tmp1251.fdb -i trgsample.sql  -ch win1251 
- прокатило Ок.
Открываю базу в ИБЭ, смотрю в триггер - кракозябры :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE OR ALTER TRIGGER T_BI FOR T
ACTIVE AFTER INSERT POSITION 0
as
begin
  /*
     ‘ в®зЄЁ §pҐ­Ёп Ў ­ «м­®© нpг¤ЁжЁЁ
     ¤ ­­л© ваЁЈЈҐа ᮧ¤ ­ ў Ў«®Є­®вҐ windows
   */
end



Вариант 2. Эксперимент с базой, созданной с чарсетом NONE .
Код: plaintext
1.
2.
[firebird@firebirdG]$ isql -q
SQL> create database 'tmpnone.fdb' default character set none; commit;
SQL> quit;

2.1 Натравливаю на скрипт с триггером isql, указывая базу tmpnone.fdb, без ключика -ch:
Код: plaintext
1.
2.
3.
4.
5.
6.
C:\1INSTALL\FIREBIRD\FB_2_5>bin\isql 192.168.0.61:/u01/db/firebird/tmpnone.fdb -i trgsample.sql 
Statement failed, SQLSTATE = 42000
unsuccessful metadata update
-DEFINE TRIGGER failed
 -Malformed string 
After line 2 in file trgsample.sql

2.2 Повторяю п. 2.1, только добавляю опять ключик с чарсетом:
Код: plaintext
bin\isql 192.168.0.61:/u01/db/firebird/tmpnone.fdb -i trgsample.sql  -ch win1251 
- прокатило Ок.
Опять иду в ИБЭ, открываю базу tmpnone, в триггере - снова кракозябры :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE OR ALTER TRIGGER T_BI FOR T
ACTIVE AFTER INSERT POSITION 0
as
begin
  /*
     ‘ в®зЄЁ §pҐ­Ёп Ў ­ «м­®© нpг¤ЁжЁЁ
     ¤ ­­л© ваЁЈЈҐа ᮧ¤ ­ ў Ў«®Є­®вҐ windows
   */
end



РАЗДЕЛ 2. Cкрипт и isql - на LINUX машине.

Иду в PUTTy, запускаю там mc, ввожу текст:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
recreate table t(id int); commit;
set term ^;
create or alter trigger t_bi for t
active after insert position 0 as
begin
  /*
    с точки зрения банальной эрудиции данный триггер
    был создан в редакторе Midnight Commander
  */
end^
set term ^;
commit;



Вариант 3. База tmp1251 (default charset = win1251)

3.1
Код: plaintext
[firebird@firebirdG]$ isql localhost:/u01/db/firebird/ tmp1251 .fdb -i trigsample.sql
- прокатило! Хотя ключик '-ch win1251' *НЕ* был указан.
Открываю базу в ИБЭ, иду в триггер - читабельный , кракозябр нету.

3.2 Теперь добавляю ключик -ch win1251:
Код: plaintext
[firebird@firebirdG]$ isql localhost:/u01/db/firebird/tmp1251.fdb -i trigsample.sql  -ch win1251 
Иду в ИБЭ - а там в триггере, кажись, юникод :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE OR ALTER TRIGGER T_BI FOR T
ACTIVE AFTER INSERT POSITION 0
as
begin
  /*
    с точки зрения банальной эрудиции данный триггер 
    был создан в редакторе Midnight Commander
  */
end



Вариант 4. База tmpnone (default charset = none)

4.1
Код: plaintext
[firebird@firebirdG]$ isql localhost:/u01/db/firebird/tmpnone.fdb -i trigsample.sql
-прокатило Ок. Иду в ИБЭ, открываю триггер - читабельный , кракозябр нету. Опять замечу: при ОТСУТСТВУЮЩЕМ ключике -ch win 1251.

4.2
Код: plaintext
[firebird@firebirdG]$ isql localhost:/u01/db/firebird/tmpnone.fdb -i trigsample.sql  -ch win1251 
- в триггере опять юникод (такой же, как в варианте 3.2).
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573467
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Таблоид!
You wrote on 13 декабря 2011 г. 17:07:41:

ТаблоидМного букв, извиняйте. Топик-памятка
человек-памятник...

--
With best regards, Мимопроходящий.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573503
Таблоид
РАЗДЕЛ 1. Cкрипт и isql - на WINDOWS машине.
Чарсет консоли на Windows какой? 866?
--
BR, Евгений
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573527
Да и в Linux, похоже, то же самое - charset консоли utf-8, а isql, по-видимому, работает с ним как с win1251
--
BR, Евгений
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573531
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кузнецов ЕвгенийЧарсет консоли на Windows какой? 866?он самый :(
Если этот чарсет консоли такой колючий, что на всё влияет, то как его поменять, но чтобы "навсегда" (т.е. с сохранением после рестарта компа) ? И почему он приводит к кракозябрам в варианте 1.2 - там и база с чарсетом 1251 и коннект тоже с ним.
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573604
Таблоидон самый :(
Если этот чарсет консоли такой колючий, что на всё влияет, то как его поменять, но чтобы "навсегда" (т.е. с сохранением после рестарта компа) ?
В google запрос "cmd кодовая страница по умолчанию" выдаст на первой же странице страницу с нужным ключом реестра.

ТаблоидИ почему он приводит к кракозябрам в варианте 1.2 - там и база с чарсетом 1251 и коннект тоже с ним.
По-видимому, isql берет текст в формате консоли и сharset коннекта роли не играет. Ну вот если просматривать в любом Windows-редакторе командный файл с русскими комментариями в 866, там ведь тоже "крякозябры" будут.

--
BR, Евгений
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573657
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийчеловек-памятник...
Человек-хомячок. В Windows всего две русские кодировки, но и в них он умудрился
запутаться. В Linux их четыре, лучше туда вообще не соваться.

Всю эту памятку надо выкинуть к ЧМ и заменить одним предложением из FAQ:
Character set скрипта должен всегда соответствовать character set-у, указанному
командой SET NAMES
. Точка.

Набираешь команды в консоли, где chcp показывает 866 - указывай SET NAMES DOS866
В консоли 1251 или GUI приложении - SET NAMES WIN1251.
Скармливаешь их из файла - кодировку файла (может быть и UTF8).

То же самое под Linux, только вместо chcp - locale.

Это в самом деле так сложно?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573658
В google запрос "cmd кодовая страница по умолчанию" выдаст на первой же странице страницу с нужным ключом реестра.
Хотя нет, способ с подменой Nls, кривой все же. Вроде есть еще варианты правки HKCU/Console, но официальных ссылок не видел, надо смотреть.
--
BR, Евгений[/quot]
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573727
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВсю эту памятку надо выкинуть к ЧМ и заменить одним предложением из FAQ:
Character set скрипта должен всегда соответствовать character set-у, указанному командой SET NAMES .По сути - правильно.
Но вот только формулировка наоборот - в чарсете коннекта нужно указывать чарсет скрипта ;)
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573811
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНабираешь команды в консоли, где chcp показывает 866 - указывай SET NAMES DOS866
В консоли 1251 или GUI приложении - SET NAMES WIN1251.
Скармливаешь их из файла - кодировку файла (может быть и UTF8).

То же самое под Linux, только вместо chcp - locale.

Это в самом деле так сложно?..Это сейчас, после твоего объяснения и проверки, - нет, не сложно. Получилось. И спасибо за ответ.

Только вопросик остается.

Вот создал я файл trigger_sample.sql в кодировке WIN1251 (в блокноте, ФАРе - неважно). Дальше иду в cmd.exe (а там по дефолту эта старая cp=866), запускаю isql. Устанавливаю там SET NAMES WIN1251 - т.е. явно говорю ему, в какой кодировке дальше будет "общение".
Ввожу далее CONNECT TESTR.FDB и затем даю на выполнение скрипт trigger_sample.sql.

СУБД Firebird НЕ ругается (см вариант 1.2), но в тело триггера пишет по тихому кракозябры. Получается, он берёт чарсет из chcp, а на мою команду set names (или ключик -cp) ему плевать с колокольни.
Если не так, то чем объяснить, что консольная установка chcp перешибает команду set names ?

Dimitry Sibiryakov Character set скрипта должен всегда соответствовать character set-у, указанному командой SET NAMES .При работе c БД, расположенной на LINUX'e, из-под виндового ISQL, это утверждение НЕ ВЕРНО.
Я могу набрать скрипт в блокноте виндузы ("Character set скрипта" = 1251), а скармливать его серверу из cmd или его оболочки (FAR'a) с кодировкой 866. И тогда всё обломится, даже если укажу SET NAMES WIN1251.

BTW, ты же мне говорил (в личке), что у тебя там есть какой-то линух на VM. Проверь, если будет время.
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573902
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидзатем даю на выполнение скрипт trigger_sample.sql.

Как "даёшь"? Командой INPUT?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573909
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКак "даёшь"? Командой INPUT?и так пробовал, и через ключик '-i' (но тогда еще и ключик -cp win1251 юзал).
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573921
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоиди так пробовал, и через ключик '-i' (но тогда еще и ключик -cp win1251 юзал).

А ты уверен, что не через меню "Редактирование"-"Вставить"?.. Потому как какой ещё,
нахрен, ключик -i после ручного ввода команды CONNECT?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573942
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА ты уверен, что не через меню "Редактирование"-"Вставить"?.. Потому как какой ещё, нахрен, ключик -i после ручного ввода команды CONNECT?..Не, я файл предварительно создал в редакторе FAR'a.
Ключик '-i' - это я про то, что скрипт можно ведь не только INPUT'ом скармливать ("внутри" консоли isql), но еще и указывать как аргумент командной строки:
Код: sql
1.
C:\1INSTALL\FIREBIRD\FB_2_5\bin\isql 192.168.0.61:/u01/db/firebird/tmp1251.fdb -i trgsample.sql -ch win1251
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37573982
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид1.2 Повторяю эту команду, но добавляю к ней ключик с указанием чарсета коннекта:
C:\1INSTALL\FIREBIRD\FB_2_5\bin\isql 192.168.0.61:/u01/db/firebird/tmp1251.fdb -i trgsample.sql -ch win1251
не верю. декодер нам говорит, что он перекодировал из 866.
Вопрос - В какой кодировке файл trgsample.sql? Еще раз напомню, что у блокнота есть шрифт Terminal, который показывает текст в 866. Fixedsys показывает в 1251.

То есть, если в блокноте в файл вбиты символы 1251, то что - isql их перекодирует в 866???

Таблоид(в блокноте, ФАРе - неважно).
важно. в виндовом блокноте видно "кодировку", см. выше. в ФАРе - понятия не имею, в какой кодировке он создает текстовый файл, и в каком виде его импортирует isql.
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37574014
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, приведу постановку задачи по манипуляциям с телесами PSQL-объектов, содержащих кириллицу (в примере - триггер) и её решение. Может, кому еще пригодится (мне - точно, и еще не один раз)

Дано:
* база-источник (production) с большим числом констрейнтов, индексов и - что самое важное - активных триггеров. В триггерах идёт весьма много преобразований, обращений к разным таблицам, проверок етц. В метаданные этой базы разработчиками могут вноситься разные изменения - в том числе в констрейнты, индексы и триггера. Тела триггеров могут содержать кириллицу, разумеется.
* база-приемник - изначально создана как точная копия базы источника (со всем вышеописанным барахлом)
* репликатор, который журналирует изменения в базе-источнике и по расписанию перетаскивает обновленные данные в бд-приемник.
* обе базы расположены на разных LINUX-серверах, у которых locale = UTF8; character set обеих баз = WIN1251.

Требуется:
* в базе-приемнике: убрать все констрейнты и индексы, за исключением not_null'ов и первичных ключей
* в базе-приемнике: удалить все триггеры
* при аварии БД-источника - восстановить не только последние данные по БД-приемнику, но и все метаданные, которые были в БД-источнике на самый последний момент.

То есть, должен быть скрипт, регулярно запускаемый cron'ом и натравливаемый на БД-источник. Этот скрипт должен создать .sql-файл - полное описание имеющихся в БД-источнике констрейнтов, индексов и триггеров.
При аварии БД-источника этот файл с DDL-командами будет применён к target_БД, в итоге должна будет получиться база, максимально приближенная к потерянной.

В итоге, достаточно быстро получилось сбацать (см аттач):
1) скрипт, удаляющий констрейнты, индексы и триггеры;
2) скрипт, извлекающий DDL всех индексов (а если они связаны с UNIQUE или FK-констрейнтами, то DDL констрейнтов[+ индексов]);
3) скрипт, извлекающий тело триггеров и прилепливающий к ним сверху нужные шапки (before/after insert/update/delete).

Основной же гемор случился извлечением триггеров с кириллицей и, как теперь понимаю, с чарсетом той консоли, с которой вводится isql и скрипт на выполнение с полученным DDL триггеров.

Итак, решение.
Создаю пустую базу с чарсетом = 1251:
Код: sql
1.
2.
3.
4.
isql -q
SQL> create database 'testr.fdb' default Character set win1251; commit;
SQL> create table t(id int); commit;
SQL> quit;

Далее подключаюсь к ней в ИБЭ и ввожу в его script executive:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
recreate table t(id int); commit;
set term ^;
create or alter trigger t_bi for t
active after insert position 0
as
begin
  /*
     Этот триггер создан в редакторе скриптов ИБЭ
     2011 года декабря месяца двенадцатого числа
   */
end^
set term ;^
commit;

Запускаю PUTTy, нахожу базу, и ввожу следующую команду:
Код: sql
1.
isql testr.fdb -i trg_ddl_extract.sql -ch utf8  | sed -e "s/ \{1,\}$//" > extracted_trigger_ddl.txt

- в которой:
* скрипт trg_ddl_extract.sql - достает DDL всех триггеров (см аттач)
* чарсет коннекта utf8 - это то, что я вижу в выводе команды locale
* перевод вывода на вход потоковому редактору sed с reg_exp'ом - это отсечка хвостовых пробелов в результате работы isql, коих рождается великое множество (isql, как я понял, НЕ умеет делать это)
* результат extracted_trigger_ddl.txt - то, что надо держать в надежном месте, чтобы применить на случай аварии БД-исчтоника к стендбаю репликатора

В новом файле extracted_trigger_ddl.txt вижу наконец-то читабельный текст:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
[firebird@firebirdG firebird]$ cat extracted_trigger_ddl.txt

set autoddl off;
set term ^;
/* trigger: T_BI */
create or alter trigger T_BI for T
active after insert position 0
as
begin
  /*
     Этот триггер создан в редакторе скриптов ИБЭ
     2011 года декабря месяца двенадцатого числа
   */
end
^ set term ;^
commit;
Открываю этот файл редактором mc, ввожу дополнение:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
set autoddl off;
set term ^;
/* trigger: T_BI */
create or alter trigger T_BI for T
active after insert position 0
as
begin
  /*
     Этот триггер создан в редакторе скриптов ИБЭ
     2011 года декабря месяца двенадцатого числа
     и слегка подправлен в редакторе mc
   */
end
^ set term ;^
commit;

Сохраняю файл, затем натравливаю его на isql как скрипт со стандартной DDL-инструкцией создания триггера:
Код: sql
1.
[firebird@firebirdG firebird]$ isql testr.fdb -i extracted_trigger_ddl.txt -ch utf8

Снова вхожу в ИБЭ, смотрю в триггер - победа! Весь текст читабельный, крабозябр нету.
Код: plaintext
----------------------------------------------------------------------
PS. Файлы в аттаче:
DEL_FK_UK_IDX_TRIGS.sql - генерит скрипт для удаления всех констрейнтов, за исключением всех PK и всех not_null'ов (PK оставлены сознательно: их индексы позволят репликатору выполнять DML над базой приемником с максимальной скоростью)
IDX_DDL_EXTRACT.sql - генерит скрипт (пере)создания всех имеющихся индексов (если индекс обусловлен констрейнтом, то DDL будет создана именно по констрейнту, а не по индексу; индекс создастся автоматом)
TRG_DDL_EXTRACT.sql - генерит скрипт (пере)создания всех имеющихся триггеров.

Первый скрипт надо применить к БД-источнику, а его результат (стандартный DDL-скрипт) - к БД-приемнику, перед началом работы репликатора. Это приведет к удалению "обременяющих" индексов, констрейнтов и триггеров.
Последние два скрипта надо запускать cron'ом (натравливать их на продакшен) и сохранять их результат в надежном месте, например - отправлять на почту админу. При аварии продакшена результат этих двух скриптов нужно будет применить к бывшей базе-приемнику, в которую шла запись репликатора.
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37574038
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvТо есть, если в блокноте в файл вбиты символы 1251, то что - isql их перекодирует в 866???

Да, если скармливать их ему через буфер обмена.

kdvв виндовом блокноте видно "кодировку", см. выше. в ФАРе - понятия не имею
Видно. Прямо на лбу. Чёрным по грязно-голубому написана кодовая страница. А вот в блокноте
я что-то не вижу...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
    #37574049
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvв ФАРе - понятия не имею, в какой кодировке он создает текстовый файлСудя по всему, ты прав: проверил содержимое того файла командой type - а она вместо кракозябр выдает читабельный текст в кодироке 866.
Проверил только что еще раз, аккуратно. Претензии по примеру 1.2 исходного поста отменяются. При указании ключика -ch win1251 файл с кириллицей, созданный в кодировке 1251, отображается в тело триггера без искажений. Даже если намеренно перед вызовом isql вернуть назад chcp 866!

В общем, способ извлечения кириллицы и записи её с помощью isql стал понятным. Почти :-)
2 DS : спасибо еще раз за наводку.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Формир-е PSQL-объектов с кириллицей в тексте: проблемы на linux'e при любом чарсете
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (2): Анонимы (1), Yandex Bot 2 мин.
Пользователи онлайн (14): Анонимы (12), Yandex Bot, Bing Bot 6 мин.
x
x
Закрыть


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