Felipe Monteiro de Carvalho escreveu:
I think it's the other way around. If you know what encoding is
expected you have a more predictable result. You know where a
conversion will take place. For example:

MyUTF8String := MyRTLString;

So we get an error that characters are being lost, but only in Windows
... ummm, it turns out there was a problem with the conversion routine
in the RTL.

Will not get lost. UTF8 holds all unicode range. It will be converted from UTF-16 to UTF 8
To be honest, I think a case for LCL follows widget set encoding could also
be made.

It was already investigated that the conversion time is negletible
compared to the paint time.

Using RTLString increases the problems for developers, because they
need to identify when they need to do something which require knowing
the encoding and increases the size of the code to add the conversion.

Not necessarily, the compiler would select the adequate conversion or not convert. Says you have a function that expects a UTF8 encoding and you set that parameter as UTF8String. Just do MyUTF8 := MyRTLString. Automatically in windows you get a conversion, under unix no.

Remember that we are expecting to build software in a RAD way.

So in one hand you have no substantial gain and in the other some annoyance

Initially i'm not in favor of using RTLString, IMO LCL should choose an encoding UTF16 or UTF8 and then let the compiler convert only the system calls.

Here's the conversions we would got:

LCL as UTF8

OS-WidgetSet Conversion LCL <-> WidgetSet Conversion LCL <-> System calls ----------------- --------------------------------- ----------------------------------- Windows-win32: YES YES Windows-gtk2: NO YES Windows-Qt: YES YES Linux-Gtk2: NO NO Linux-Qt: YES NO


LCL as UTF16

OS-WidgetSet Conversion LCL <-> WidgetSet Conversion LCL <-> System calls ----------------- --------------------------------- ----------------------------------- Windows-win32: NO NO Windows-gtk2: YES NO Windows-Qt: NO NO Linux-Gtk2: YES YES Linux-Qt: NO YES


LCL as RtlString

OS-WidgetSet Conversion LCL <-> WidgetSet Conversion LCL <-> System calls ----------------- --------------------------------- ----------------------------------- Windows-win32: NO NO Windows-gtk2: YES NO Windows-Qt: NO NO Linux-Gtk2: NO NO Linux-Qt: YES NO

Luiz


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to