Am 30.03.2016 um 10:11 schrieb Mattias Gaertner:
You have to distinguish between with CP_UTF8 as default and with
CP_ACP as default.
Yes, I know it. What I mean with default:
Go to Project -> New Project ... -> Application
Now a new Application is created. With the added patch {$codepage UTF8}
is added and thats right, cause if you save the file to anywhere it is
UTF-8 encoded. There is nothing wrong.
Am 30.03.2016 um 10:11 schrieb Mattias Gaertner:
Both have cases where some string combinations fail.
With the hack that the LCL makes and the added {$codepage UTF8} all
conversions work like a charm (see added testproject).
If you want to use -dDisableUTF8RTL, you have to know, what you do.
- remove {$codepage UTF8}, better set it to the valid codepage or use
-FcCP...
- save all the source files with the wanted encoding/codepage
So IMHO this special case wouldn't be used much. All the puzzled
discussions I can see in the forums are about the default applications
created with Lazarus (not FPC), that uses the LCL.
Am 30.03.2016 um 10:11 schrieb Mattias Gaertner:
LCL applications nowadays use CP_UTF8 as default. We (laz team) tested
adding -FcUTF8 and it failed in too many cases. Also it adds some
overhead. So we decided to *not* add it by default.
I also don't want it. I want a added {$codepage UTF8}, if the file is
saved as a UTF-8 encoded one.
Am 30.03.2016 um 10:11 schrieb Mattias Gaertner:
Offtopic: In the added project: Why is a const 'abc' with {$codepage UTF8} a
Unicodestring (Windows7, 64bit, Lazarus 1.7 r52077M FPC 3.1.1
i386-win32-win32/win64 on FPC 3.1.1 r33371)?
There is no compile-time flag to tell the compiler what codepage the system is
using at runtime. So it assumes current Windows codepage. Any string literal not
in this codepage is stored as UTF-16.
Thanks for that hint!
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus