Никак не могу разобраться, как в базу кодировке 1251 записать/прочитать национальные символы Καιρός
Может ч-з BLOB, ведь при таком раскладе БД неважно то там? Но как написать непонятно.
Пробую так:
var s: string;
begin
s:='[b]Καιρός[/b]';
StreamMem:=TMemoryStream.Create;
L := length(s);
StreamMem.WriteBuffer(L, SizeOf(L));
StreamMem.WriteBuffer(s[1], L);
ibDataSet1.Edit;
(ibDataSet1.FieldByName('FBLOB') as TBlobField).LoadFromStream(StreamMem);
ibDataSet1.Post;
FreeAndNil(StreamMem);
end;
Потом пытаюсь получить:
StreamMem:=TMemoryStream.Create;
IF (ibDataSet1.FieldByName('FBLOB') as TBlobField).BlobSize>0 Then
begin
(ibDataSet1.FieldByName('FBLOB') as TBlobField).SaveToStream(StreamMem);
StreamMem.Position:=0;
StreamMem.ReadBuffer(L, SizeOf(L));
SetLength(S, L);
StreamMem.ReadBuffer(S[1], L);
showmessage(s);
end;
FreeAndNil(StreamMem);
end;
Поле - BLOB SUB_TYPE 0 SEGMENT SIZE 80
На выходе получаю '
Και44', неправильно считаю байты? Как получить корректно?