Juha Manninen wrote: > What happens when I do: > var s: string; > ... > s := TMemo.Lines[0]; > > Is it converted somehow? > The native widget's encoding is either UTF-8 or UTF-16. > Is the string actually a Utf8String or Utf16String then? > When do I need to pay attention to it?
The string is Utf8String (= AnsiString for now and in the near future), as Sven pointed out. You need to pay attention to it when you cross the boundary between FPC's RTL/FCL and LCL. LCL uses utf-8 regardless of underlying widgetset, but RTL/FCL uses platform-specific encoding. IIRC most if not all encoding dependent routines of RTL/FCL are related to file operations and I/O. LCL provides functions for platform-independent conversion between utf-8 and platform-specific encoding (see FileUtil unit): 1. Utf8ToSys/SysToUtf8 as general-purpose functions; 2. Set of wrappers such as FileExistsUtf8, FindFirstUtf8 etc. to make our code more readable. -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
