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

Reply via email to