> > Дим, если сейчас сервер (2.1) действительно стал возвращать кодовую > > страницу блоба - то оставляйте как есть.
> Дело немного не в этом. Ответь на вопрос - ты при чтении/записи > текстовых блобов чарсет (коннекта) в BPB всегда указываешь? Я туда передаю нули. То есть BPB не заполняю в принципе. Я как-то очень давно курил этот вопрос и решил отказаться от этой заморочки. То бишь я закладываюсь на то, что все блобы имеют кодовую страницу _подключения_. Потому что определить чарсет блобовой колонки, в общем случае, очень напряжно. > Вся проблема пошла оттого, что в 2.1 сервер стал конвертировать *строки* > из *чарсета коннекта* в UNICODE при занесении данных в RDB$SOURCE и > RDB$DESCRIPTION. Т.е. теперь предполагается, что русские буквы в DDL > (например, комментарии в процедуре) будут в чарсете коннекта. И это есть ГУД! > Этим гарантируется, что в поле будет именно UNICODE, а не хрен знает > что, как раньше (там обычно лежал ANSI-текст). Для чего это надо? А для > того, чтобы можно было нормально (т.е. не бинарно) с ними работать, как > и с обычными строками (upper/lower/substring и т.п.) Понятно > Побочный эффект - если RDB$SOURCE/DESCRIPTION блобы читать без указания > чарсета в BPB, то получишь юникодовскую белиберду вместо русского > текста. Именно это визуально наблюдается в IBE и компарере. ISQL же > указывает чарсет коннекта в BPB при чтении системных блобов, так что она > извлекает данные нормально. Не понятно. Если при записи блоба вы его перекодируете из чарсета_подключения в чарсет_колонки, то почему тогда вы его при чтении обратно не перекодируете в чарсет_подключения ... Хотя, наверное, есть какие-то побочные эффекты. Типа несоответствия длины полученной через isc_blob_info и фактических данных. В целом - Дим, как сделаете так и адаптируем :) Коваленко Дмитрий.

