Hallo und schönen Tag!
Auf sourceforge gibt es ein Projekt
Charset detector:
Zitat:
Charset Detector - as the name says - is a stand alone executable module for automatic charset detection of a given text.
Eigentlich sollte dies eine nützliche Funktion sein. Also habe ich versucht, Charset detector mit folgendem Code zu verwenden:
Delphi-Quellcode:
program CharsetDetectorTest;
{$APPTYPE CONSOLE}
{$R *.res}
uses
CodeSiteLogging,
chsd_dll_intf,
System.Classes,
System.SysUtils;
var
LFileStream: TFileStream;
LBuffer: TBytes;
cs: rCharsetInfo;
begin
try
csd_Reset;
LFileStream := TFileStream.Create('
C:\mytext.txt', fmOpenRead);
try
// Read file into buffer:
SetLength(LBuffer, LFileStream.Size);
LFileStream.ReadBuffer(Pointer(LBuffer)^, Length(LBuffer));
CodeSite.Send('
Length(LBuffer)', Length(LBuffer));
if csd_HandleData(PWideChar(LBuffer), Length(LBuffer)) = NS_OK
then
begin
CodeSite.Send('
chsd_Done', csd_Done);
cs := csd_GetDetectedCharset;
CodeSite.Send('
cs.Name', PAnsiChar(cs.
Name));
// -> Unknown
CodeSite.Send('
cs.CodePage', cs.CodePage);
// -1
CodeSite.Send('
cs.Language', PAnsiChar(cs.Language));
// -> Unknown
end
else
CodeSite.Send('
csd_HandleData Failed');
finally
LFileStream.Free;
end;
except
on E:
Exception do
Writeln(E.ClassName, '
: ', E.
Message);
end;
end.
Leider bekomme ich als Ergebnis nur "Unknown" und -1. Was mache ich falsch?