This discussion is going nowhere.
Everybody repeats their arguments.
This is turning into a "bash the fpc/lazarus developers" thread.
From what I get from discussions with fpc devels, the cp-aware ansistrings are (meant to be) compatible with Delhi cp-aware ansistrings, including some (grant it) counter-intuitive behaviour.
You can insist on fighting the system and fighting the fpc devels if you want, but I don't think that is going to get us anywhere.
It distracts also from the fact we are in some kind of transition phase, moving to a solution where every string is fully unicode (and unambigous).
Personally I don't like the cp-aware string solution that Delphi invented at all.
It adds complexity, all for the sake of having a "1 byte = 1 char = all you ever need"?
The fact that string=unicodestring in Delphi now, only adds confusion to the discussion about strings in fpc/Lazarus here.
Fact is that even complex software (like Lazarus IDE) runs very well with the new cp-aware strings.
Yes, there were adjustments needed, but not as many as I feared.
And yes, adjustments in you code may be needed as well.
Such as not using the UTF8String type (which was discouraged even in the pre cp-string era), and adding explicit codepage identifiers to sourcecode that has string constants with characters that er not ASCII (or ad -FcUTF8 to your default compiler options to achieve the same).
It is an illusion that the evolution of the compiler/RTL/Lazarus is not at some point forcing you to adjust your code.
We'll try to be as minimal invasive as possible.
So, please either keep away from fpc 3.0 and later or at least try to implement the suggestions we give you to solve your problem.
And yes, please report back if our suggestions fail (and give sample code so we can test it).
Please stop just bickering.
Bart