Korrektur (da man bissel aufpassen muss mit der Vererbung) und gleich mit Konsolentestprogramm:
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
Winapi.Windows;
var
I: Integer;
function EncodingToStr(
const AEncoding: TEncoding):
string;
begin
Result := '
';
if AEncoding
is TUTF8Encoding
then // <-- easy
Result := '
UTF8'
else if AEncoding
is TUTF7Encoding
then // <-- easy
Result := '
UTF7'
else if AEncoding
is TBigEndianUnicodeEncoding
then
Result := '
BigEndianUnicode'
else if AEncoding
is TUnicodeEncoding
then // <-- easy
Result := '
Unicode'
else if AEncoding
is TMBCSEncoding
then // <-- schwieriger, musste noch die CodePage auswerten
begin
if AEncoding.CodePage =
Winapi.Windows.GetACP
then
Result := '
ANSI'
else
Result := '
ASCII';
end;
end;
begin
try
Writeln(EncodingToStr(TEncoding.ANSI));
Writeln(EncodingToStr(TEncoding.ASCII));
Writeln(EncodingToStr(TEncoding.BigEndianUnicode));
Writeln(EncodingToStr(TEncoding.
Default));
Writeln(EncodingToStr(TEncoding.Unicode));
Writeln(EncodingToStr(TEncoding.UTF7));
Writeln(EncodingToStr(TEncoding.UTF8));
Readln;
except
on E:
Exception do
Writeln(E.ClassName, '
: ', E.
Message);
end;
end.