So in addition to Thaddy, to state the obvious:
the compiler is compiled with ansistring(0), so on windows that means the default windows codepage (ansi codepages like windows-125x, not OEM codepages like cp852 like Thaddy says, though they are mostly 1:1 matched)
So anything inside the compiler that doesn't have special treatment (like literals) will use that codepage.
Literals have a special pass through to allow literals in varying codepages to be transfered to the final binary.
The choice for one-byte unicode/utf8 strings on Windows was doomed from the start, and should have been avoided, for exactly these reasons.