program ConsoleTest;
{.$APPTYPE CONSOLE}
uses
Windows,system.Classes,system.SysUtils;
const
BOM_LENGTH = 3;
FileName='2.txt';
var
st: TMemoryStream;
Buffer: array[0..BOM_LENGTH-1] of Byte;
begin
if (FileName <> '') and FileExists(FileName) then
begin
{$MESSAGE hint 'UTF-8 fix for TMemIniFile.LoadValues is active'}
st := TMemoryStream.Create;
try
st.LoadFromFile(FileName);
st.Position := 0;
if BOM_LENGTH = st.Read(Buffer, BOM_LENGTH) then begin
// the file contains at least BOM_LENGTH bytes
if (Buffer[0] = $EF) and (Buffer[1] = $BB) and (Buffer[2] = $BF) then begin
Writeln('UTF-8');
end else begin
// no BOM
st.Position := 0;
Writeln('no UTF-8');
end;
end;
Readln;
finally
st.Free;
end;
end
else
end.
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.050891876220703 seconds