[fpc-devel] TStrings and BOM
Bart
bartjunk64 at gmail.com
Thu Jan 2 12:38:41 CET 2020
On Thu, Jan 2, 2020 at 12:12 PM Michael Van Canneyt
<michael at freepascal.org> wrote:
> In Delphi it doesn't matter where the encoding comes from.
> If writeBOM is true and there is a preamble for the encoding (whatever it
> is), it is used.
I think I have to rephrase my question.
In fpc TStrings.SaveToStream(AStream) does NOT use DefaultEncoding if
Encoding is nil.
So this code:
//Source codepage is Windows 1512
SL := TStringList.Create;
SL.SkipLastLineBreak := True;
SL.WriteBOM := True;
SL.DefaultEncoding := TEncoding.UTF8;
S := 'รค'; // = #$0E
SL.Add(S);
SL.SaveToStream(St)
Will result in St having as content 1 single byte: 0E (hex)
Whereas
SL.SaveToStream(St, nil) will result in St having a content of 5
bytes: EF BB BF C3 A4
Is that Delphi compatible?
>From the help text of the Embarcadero site I cannot figure that out.
--
Bart
More information about the fpc-devel
mailing list