Am 10.04.2012 01:17, schrieb Hans-Peter Diettrich:
Now every user has the choice to stay with a specific FPC/Lazarus version, that does not yet support the new string types, or to drop UTF-8 strings in favor of the new UTF-16 strings. Since most code has to deal with the Unicode BMP (BasicMappingPage) only, the difference between the length of an string in (UTF-8)chars and characters has gone away with UTF-16. Do you really see a need for finding the position of a non-BMP character in an string, and changing exactly that character in the string? Then you are on the safe side by using StringReplace, which already worked with UTF-8 and will continue to work with UTF-16 and whatever other encoding. The use of Char variables has been dangerous already with UTF-8, where exotic ("astral") characters can consist of up to 6 bytes. In so far I don't understand why Delphi now uses WideChar for Char, instead of UnicodeChar, where it is guaranteed that every codepoint (except ligatures and similar text-processing stuff) can be stored in a UnicodeChar variable.
You do know that WideChar and UnicodeChar are the same? Namely two byte characters.
Regards, Sven -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus