[fpc-pascal] String literals and code page of .pas source file
Sven Barth
pascaldragon at googlemail.com
Thu Sep 3 22:01:45 CEST 2020
Am 03.09.2020 um 07:19 schrieb LacaK via fpc-pascal:
> Hi *,
>
> I would like to have source file in Windows-1250 encoding, where are
> stored literal strings like 'áéíóčž' in Windows-1250 encoding (I share
> this one file between FPC/Lazarus and Delphi 7). Windows-1250 is also
> ANSI code page of my Windows OS. In source file I have:
>
> {$IFDEF FPC}
> {$CODEPAGE cp1250}
> {$ENDIF}
A pure string constant will still have CP_ACP as code page (which in
Lazarus will by default mean UTF-8) also when you declare it as a typed
String constant. The $CodePage directive will only influence the binary
encoding of the string. What you need to do is the following:
type
String1250 = type String(1250);
const
MyString: String1250 = 'áéíóčž';
This way the string itself will have code page 1250 and if you assign to
a normal String or a UnicodeString the compiler will insert the
appropriate conversions.
Regards,
Sven
More information about the fpc-pascal
mailing list