Ich möchte euch gerne meine Arbeit aus den vergangenen Tagen vorstellen.
Ich bin kein Profi und habe mich erst vor wenigen Tagen in Streams eingelesen.
Ich brauchte eine Lösung, um mehr oder weniger zuverlässig das Encoding einer Datei herausfinden zu können.
Über BOM ist das ja leider nicht immer feststellbar, daher habe ich eine andere Lösung entworfen.
Sie ist weder professionell noch gut, aber sie funktioniert. Es ist mehr oder weniger eine Zusammenstellung aus Dingen die ich im Internet gefunden habe.
Daher bitte ich um
Feedback! Ihr könnt die
Unit auch gerne kopieren, anpassen und hier im Beitrag wieder posten.
Der Aufruf ist einfach
Delphi-Quellcode:
var IsUnicode: Boolean;
begin
IsUnicode := TEncodingDetect.IsFileUnicode('pfad-zur-datei.txt');
So ist es auch möglich
Delphi-Quellcode:
Memo1.Lines.Clear;
Memo1.Lines.Add('
File unicode: ' + BoolToStr(TEncodingDetect.IsFileUnicode('
pfad-zur-datei.txt'), True));
Memo1.Lines.Add('
String unicode: ' + BoolToStr(TEncodingDetect.IsTextUnicode('
ʥ'), True));
Memo1.Lines.Add('
String unicode: ' + BoolToStr(TEncodingDetect.IsTextUnicode('
ABC'), True));
Memo1.Lines.Add('
File content: ' + TFile.ReadAllText('
pfad-zur-datei.txt', TEncodingDetect.GetEncoding('
pfad-zur-datei.txt')));