1

Тема: TStringList в UTF8 в Lazarus і в Delphi XE5

Привіт!

Завантажую рядки в TStringList в дельфі так:

A.LoadFromFile(FileName, TEncoding.UTF8);

в Lazarus так:

A.LoadFromFile(FileName);

В результаті в дельфі весь текст в кирилиці відображується нормально. При компіляції в лазарусі текст обрізується.

Як можна це виправити?

2

Re: TStringList в UTF8 в Lazarus і в Delphi XE5

A.Text := AnsiToUtf8(ReadFileToString(FileName));

http://forum.lazarus.freepascal.org/ind … ic=14529.0

Подякували: leofun011

3

Re: TStringList в UTF8 в Lazarus і в Delphi XE5

bees
Це від версії Лазаруса залежить. У мене 1.6, і там треба таким кодом конвертувати:

uses
  {...}, LConvEncoding;

procedure TForm1.FormCreate(Sender: TObject);
var
   StrIn: RawByteString;
   StrOut: String;
begin
  StrIn := ReadFileToString('C:\Users\user\Desktop\213.txt');
  StrOut := CP1251ToUTF8(StrIn);
  Memo1.Lines.Text := StrOut;
end;

Замість CP1251ToUTF8 можна використати функцію з потрібним кодуванням.
Думаю з часом зроблять як в Делфі.

Подякували: leofun011

4

Re: TStringList в UTF8 в Lazarus і в Delphi XE5

Дякую!