[fpc-devel] String and UnicodeString and UTF8Stringt
lacak at zoznam.sk
Wed Jan 12 09:45:47 CET 2011
Sven Barth wrote / napísal(a):
> Am 12.01.2011 07:16, schrieb LacaK:
>> P.S. I still does not understand, how can things work correctly if LCL
>> expect that all AnsiStrings (String) are UTF8Strings, byt RTL/FCL does
>> not strictly follow this (at least in Windows) ?
> LCL uses SysToUTF8 and UTF8ToSys if it uses the RTL (and the FCL).
> This is often done with wrappers that wrap the RTL method and do the
> conversion (e.g. FileExistsUTF8, etc.).
As I wrote in any of my previous message, AFAIK this is not true in case
of "fcl-db" and Lazarus data-aware components like TDBGrid, TDBEdit ...
They use "TField.Text: String" property to get string conent of field
and display them.
AFAIU LCL expects, that TField.Text will always return UTF-8 encoded
string (because no conversion (SysToUTF8) is done in dbgrids.pas or
dbedit.inc) , but this is not true always.
So where is error ?
1. Is it wrong expectation by LCL, that TField.Text is always UTF8 string
2. Is it wrong in implementation of TSQLConnectors, which write data
into record buffer (of TStringField) and do not convert them always into
(if data should be always in UTF-8 then it will be good redefine
TField.Text property like "property Text: UTF8String" to be clear, that
we always work with UTF-8 strings)
3. I missed something ? ;-)
More information about the fpc-devel