On 30.08.2023 17:35, Tomas Hajny via fpc-devel wrote:
On 2023-08-30 17:23, Ondrej Pokorny via fpc-devel wrote:
Sorry to bother you with something as trivial: is your t2.pas file
really encoded in UTF-8?
Because if I compile an ANSI file with the {$codepage utf8}
declaration, then I get "correct" output. But obviously this is very
wrong.
You can try yourself with the attached files. So maybe this is your
mistake?
Well, you're right, this was indeed my mistake, shame on me. :-( Then
I can confirm that the compiler behaviour is indeed wrong (although I
have no clue why it behaves that way).
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.
Ondrej
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel