On 09 Jul 2013, at 11:02, Noah Silva wrote:
1. What encoding "should" I be writing to the terminal?
The console code page. You can get it using the following function:
function GetConsoleOutputCP : UINT; stdcall; external 'kernel32'
name 'GetConsoleOutputCP';
from experimenting
with text files using the cat command in powershell, it seems that
local
("ANSI") encoding should be used. This makes sense since older
versions of
windows only supported local encodings.
The ansi code page is (or at least can be) different, that's the the
result of
function GetACP:UINT; stdcall; external 'kernel32' name 'GetACP';
2. Is there any reason why writing out data in the local encoding
(with
write statements, etc.) should get corrupted? For example is some
level of
the RTL assuming something about the encoding? (I don't think so,
but...)
Not in 2.6.x. In 2.7.x, every ansistring is tagged with a code page
(the ansi code page by default) and the RTL will convert it to the
console code page before writing it.
3. Is there a way to set the output to UTF8 so I can just write out
UTF8
and be done with it?
I don't know.
Jonas
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal