[fpc-pascal] How to write text to the console?

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Mon Jul 16 09:38:56 CEST 2012



On Mon, 16 Jul 2012, Reinier Olislagers wrote:

> Hope I got your attention with the subject ;)
>
> After having had help on the list I managed to write UTF8 text to the
> Windows Vista console using 2.6
> However, my test program (see attachment) fails on trunk.
>
> See
> http://lazarus.freepascal.org/index.php/topic,17548
> for discussion (initially about other problem)
> Also had a look at
> http://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg26232.html
>
> This works in FPC 2.7.1:
> WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), at s[1],length(s),bw,nil);
> ... but seems to be Windows-only.

Indeed.

>
> What am I missing and what is the easiest cross-platform way to
> output/accept UTF8 text to/from the console?

There is no cross-platform way.

On Unix, the (x/k)console is usually UTF-8 these days, so you don't need to do anything.
You need to look at the various localization environment variables.

> Should I set the console codepage back to the one in use before the
> program ran? Should I also mess with SetConsoleCP and/or SetTextCodePage?

These don't exist on non-windows ?

Michael.



More information about the fpc-pascal mailing list