Показать сообщение отдельно
  #49  
Старый 15.07.2010, 15:25
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Поподробнее можно про EncodingClass? А то я что-то не пойму назначения этого
-----
Нашел способ определить, закодирован ли файл кодировкой UTF8:

Код:
function isFileInEnc(fName:PChar):boolean;
 var
 Stream:TStream;
 b:Cardinal;
 Const
 sign=$BFBBEF;     //Сигнатура UTF-8

 begin
  Stream:=TFileStream.Create(String(fName),fmOpenRead); //открытие файла
  Stream.ReadBuffer(b,3);                              //чтение первых 3х быйт (сигнатура формата)
  Result:=b=sign;                                      //если сигатура формата совпадает с сигнатурой UTF8, то вернуть true
  Stream.Free;
 end;

Исходя из этого можно отметь файл, как UTF8:

Код:
procedure MarkFileUTF8;
var
  Stream: TStream;
  b:cardinal;
begin
  Stream := TFileStream.Create('C:\1.txt',fmCreate);
  try
    b:=$BFBBEF;
    S.WriteBuffer(b, 3);

    (*Теперь можно записывать строки в UTF8*)
  finally
    Stream.Free;
  end;
end;
Ответить с цитированием