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

