On 01/05/2012 12:32 PM, Marco van de Voort wrote:
In our previous episode, Michael Schnell said:
I found that the length of an "AnsiString(CP_UTF16)" is given in terms
of bytes and not of Words. Is this like it should ?
Yes. Afaik that is not a sane combination, but Delphi compatible.

This really is absolutely insane, as in Delphi (I only have "Turbo"), the length of a WideString is given in terms of word and not of bytes.

So why introducing major differences in the handling of 16 bit encoded Strings such as - AnsiString(CP_UTF16) (provided CP_UTF16 is previously defined to be 1200)
 - WideString
 - UnicodeString (I can't test this)
?

I feel that much of the Delphi way of handling the "new string"s is hazardous and not worth mimicking and better ways can be found - there have been long discussions on this - (while of course for compatibility, it is important to provide the Delphi-way behavior forced by a compiler option).

-Michael
(BTW.: I still don't know whether Delphi even introduces the insanity that when assigning, the auto-conversion is decided regarding the actual internal dynamical encoding of the target or if the target's statically given Type name is always used.)
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to