RR> Посмотри ветку "Почему мне FB 2.1 не отдает?" и особенно фразу Димы Еманова

>> Не понятно. Если при записи блоба вы его перекодируете из
>> чарсета_подключения в чарсет_колонки, то почему тогда вы его при
>> чтении обратно не перекодируете в чарсет_подключения ...

RR> Я выше специально отметил - перекодировка идет *строк* (DDL-текст, 
RR> комментарии) в UNICODE. Т.к. кодировка строк определяется чарсетом 
RR> коннекта. А вот кодировка блобов определяется ихним BPB. Так уж заложено
RR> в нашем API.

    А почему раньше работало ?

RR> И если там пусто, то никакой перекодировки не будет. Т.к.
RR> мало кто пишет именно *блобы* в RDB$SOURCE (обычно все же строки), то 
RR> это не проблема (если только с RDB$DESCRIPTION некоторые тулзы так 
RR> работают, в худшем случае). Но вот все читают блобы именно как блоб, не
RR> указывая чарсет. Отчего и огребают в 2.1. Выход - всегда указывать 
RR> чарсет при работе с блобами, как это делает ISQL. "

    а чема указывать ?

RR> Если я правильно понял, идея в общем простая - указывать соотв. BDB при
RR> открытии или создании блоба. Тесктовый ли это блоб и его чарсет ты 
RR> можешь из SQLVAR определить. Только учти, любой, кто залезет в этот блоб
RR> какой-то старой тулзой попортит твой русский текст в любом случае.

    Спс. пошёл я рытси по коду ... искать чтение блоба ...

PS: Правда я одного не понимаю ну почему низя было в блоб запихнуть
    какой-нить "служебный байтик" в котором хранилось-бы каким макаром
    и что туды (в блоб) засунули ? ну записали как блоб - выдали назад
    без изменений, записали как строку - сохранили чарсет в "байтике",
    а дальше хоть блобом читай, хоть строкой куда конвертить есть
    информация в "байтике" ... и совместимость с предудущими версиями
    сохранишь и перекодировать всегда успеешь задав явно BDB ... ?!

PPS: Или ещё проще - по "дефолту" устанавливать чарсет BDB такой-же как
     часет подключения ... А не нравится - меняй ...

С уважением,
Константин Григорьевич.
===============


Ответить