Как загрузить текстовый файл в кодировке UTF-8

<< Нажмите, чтобы показать Содержание >>

Как загрузить текстовый файл в кодировке UTF-8

Вариант 1

procedure LoadUTF8(rv: TCustomRichView; const FileName: String; 

  StyleNo, ParaNo: Integer); 

var Stream: TFileStream; 

    s: TRVRawByteString; 

    ws: TRVUnicodeString; 

begin 

  // чтение UTF-8 в строку s

  Stream := TFileStream.Create(FileName, fmOpenRead); 

  SetLength(s, Stream.Size); 

  Stream.ReadBuffer(PRVAnsiChar(s)^, Stream.Size); 

  Stream.Free; 

  rv.Clear; 

  // конвертация из s (UTF-8) в ws (UTF-16)

  ws := UTF8Decode(s); 

  // добавление ws в документ

  rv.AddTextNLW(ws, StyleNo, ParaNo, ParaNo, False); 

end; 

Вызов:

LoadUTF8(RichViewEdit1, 'test.txt', 0, 0); 

RichViewEdit1.Format; 

Вариант 2

RichViewEdit1.Clear; 

RichViewEdit1.LoadText('test.txt', 0, 0, False, CP_UTF8);

RichViewEdit1.Format; 

См. также:

▪Юникод в TRichView.