var S:UTF8String; F:TextFile; begin S:=UTF8Encode(Memo1.Text); AssignFile(F,
'C:\test.txt'); Rewrite(F); Write(F,#$EF+#$BB+#$BF);
//UTF8標記 Write(F,S); CloseFile(F); end;
//Unicode存、取 procedure TForm1.Button1Click(Sender: TObject); var
S: string; W: WideString; begin if Memo1.Text = '' then
Exit; //存 with TMemoryStream.Create do try S :=
#$FF#$FE; Write(S[1], Length(S)); W := Memo1.Text;
Write(W[1], Length(W) * SizeOf(WideChar)); Position := 0;
SaveToFile('c:\temp\temp.txt'); finally Free;
end; end; procedure TForm1.Button2Click(Sender: TObject); var S:
string; W: WideString; begin //取 if not
FileExists('c:\temp\temp.txt') then Exit; with TMemoryStream.Create do
try LoadFromFile('c:\temp\temp.txt'); if Size < 4 then
Exit; SetLength(S, 2); Read(S[1], Length(S)); if
Copy(S, 1, 2) <> #$FF#$FE then Exit; SetLength(W, (Size - 2) div
SizeOf(WideChar)); Read(W[1], Length(W) * SizeOf(WideChar));
Memo2.Text := W; finally Free;
end; end; //Utf8存、取 procedure TForm1.Button1Click(Sender:
TObject); var S: string; begin //存 with
TMemoryStream.Create do try S := #$EF#$BB#$BF; Write(S[1],
Length(S)); S := AnsiToUtf8(Memo1.Text); Write(S[1],
Length(S)); Position := 0;
SaveToFile('c:\temp\temp.txt'); finally Free;
end; end; procedure TForm1.Button2Click(Sender: TObject);var S:
string; begin //取 if not FileExists('c:\temp\temp.txt') then
Exit; with TMemoryStream.Create do try
LoadFromFile('c:\temp\temp.txt'); SetLength(S, Size);
Read(S[1], Length(S)); if Copy(S, 1, 3) <> #$EF#$BB#$BF then
Exit; Memo2.Text := Utf8ToAnsi(Copy(S, 4, MaxInt));
finally Free; end; end;
|