Yes, I know all that. And I know there is no such thing as a Unicode char anymore, just a variable length Unicode code point, and some encoding, like UTF8 or UTF32.
First (up to Lazarus 1.4) it was Ascii + codepages only, with Widestring conversions and such, with 1.6 it was UTF8 only (and a checkmark somewhere to turn it off), now it is... what? It says string = AnsiString when you hover your mouse over it, but doesn't show the declaration. And no help (but I probably have to install that separately). What type is AnsiString? Rawbyte? Which is typeless (just a byte array)?
So, first I had to use the UTF8* functions, then the normal ones, then the string helpers start at 0, and now the normal ones are replaced by the Ansi* ones? Something like that?
Half my programs consist of manipulating strings, so I would really want to know what I'm doing.