[fpc-devel] fpc compiler wrong encoding in console output on Windows
Tomas Hajny
XHajT03 at hajny.biz
Thu Aug 31 09:59:03 CEST 2023
On 2023-08-30 23:38, Ondrej Pokorny via fpc-devel wrote:
> Am 30.08.2023 um 20:21 schrieb Ondrej Pokorny via fpc-devel:
.
.
>> Having seen the outputs, I think that the compiler just ignores the
>> source file encoding for {$MESSAGE} and {$NOTE}. It reads them always
>> as ANSI and then converts them to DOS-whatever.
>>
>> That would explain why UTF-8 byte stream is encoded into DOS CP.
>>
>> So the fix should be quite easy - when {$MESSAGE} or {$NOTE} is read
>> into a string, set the correct codepage of the string.
>
> I was correct in my assumption and I was able to fix it:
> https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/482
>
> On the other hand, when I read the $CODEPAGE docs:
> https://www.freepascal.org/docs-html/prog/progsu87.html#x95-940001.3.4
> There it is stated that only literal strings follow $CODEPAGE and the
> actual code must be in US-ASCII.
>
> But you know: Delphi compatibility :) ...and there is no "illegal
> character" compiler error as it is for:
>
> var
> ä: string;
>
> so one would expect {$note ä} to show up correctly.
Indeed. I'm glad that our discussion (although triggered by my mistake
:-( ) led to a positive outcome at last. :-)
Tomas
More information about the fpc-devel
mailing list