Есть Tntmemo1 и Tntmemo2. У обеих tntmemo1.Font.Name:=Arial Sakha Unicode (Якутский шрифт) и там и там могу набрать нац. символы. Нормально отображаются.
Но если набираю в 1-м и записываю так:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
w:string;
procedure writestring(ss:string);
var sizess:byte;
begin
sizess:=length(ss);
blockWrite(f,sizess,sizeof(sizess));//Записываю длину
blockWrite(f,ss[1],sizess*sizeof(ss[1]));//Записываю строку
end;
begin
w:=utf8encode(tntmemo1.Text);
assignfile(f,'1.dat');
rewrite(f,1);
writestring(w);
closefile(f);
end;
а во втором читаю так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
function readstring():string;
var sizess:byte;
s:string;
begin
blockRead(f,sizess,sizeof(sizess));
Setlength(s,sizess);
blockRead(f,s[1],sizess*Sizeof(s[1]));
result:=utf8decode(s);
end;
begin
assignfile(f,'1.dat');
reset(f,1);
tntmemo2.Lines.Add(readstring());
closefile(f);
end;
то нац. символы во втором отображаются знаками '?', а кириллица нормально отображается.
Скриншот и файл прикрепляю