[fpc-devel] Ansistring code page (was: bug report 20473: Please add a directive to define string=utf8string)
Jonas Maebe
jonas.maebe at elis.ugent.be
Thu Oct 13 15:21:11 CEST 2011
On 13 Oct 2011, at 15:02, Paul Ishenin wrote:
> Then use {$codepage UTF8} only. This directive treats all ansistring
> constants in UTF8 codepage. So the next code:
> {$codepage UTF8}
> var
> s: ansistring;
> begin
> s := 'utf8 string';
> WriteLn(StringCodePage(s));
> end.
>
> will output CP_UTF8 constant.
This I don't really understand. Shouldn't the constant be converted at
run time from UTF-8 to the DefaultSystemCodePage to make sure that an
ansistring(0) variable always contains strings encoded in the
DefaultSystemCodePage? If you assign e.g. a string(866) variable to a
plain ansistring variable, then such a conversion is also done, no?
I think the only case in which the source code encoding should be kept
is in case you assign the string constant to a rawbytestring.
Jonas
More information about the fpc-devel
mailing list