[fpc-devel] Unicode support - for the 20th time... ;-)

Vincent Snijders vsnijders at vodafonevast.nl
Thu Nov 20 13:58:52 CET 2008


Graeme Geldenhuys schreef:
> Hello again,
> 
> We are seeing more and more "hacks" being applied to projects trying
> to scramble around the missing FPC feature - no built-in Unicode
> supporting.
> 
> A simple example in Lazarus.... Loading a UTF-8 encoded file into a TMemo.
> 
> Normally you would write code as follows (for ANSI text):
> 
>    Memo1.Lines.LoadFromFile('someunicodefile.txt');
> 
> 
> Unfortunately that doesn't work if the file contains unicode content,
> so the following "hack" is required which is quite nasty:
> 
>    ls := TStringList.Create;
>    ls.LoadFromFile('someunicodefile.txt');
>    for i := 0 to ls.Count-1 do
>       ls[i] := UTF8Encode(ls[i]);
>    Memo.Lines.Assign(ls);
>    ls.Free
> 
> 

To make matters worse, things don't get clear, if mistakes like above 
are made.

For Lazarus it works if the file is UTF8 encoded and doesn't work if it 
has the system encoding<>UTF8.

If the file is UTF8 encoded,
Memo1.Lines.LoadFromFile('someunicodefile.txt');
works, currently, in Lazarus.

If the file is not UTF8 encoded - which implies, that it is not ASCII 
either - then you need to convert it to UTF8 before assigning it to the 
memo lines.

I hope, I didn't make a mistake myself here.

Vincent



More information about the fpc-devel mailing list