Text files and the console should look the same from the programmer's point of view. The general principle is that you should be able to redirect stdin to a file and for there to be no difference as far the program is concerned when reading a file as opposed to reading console input.

If there is a problem here, it is that the code page of text files cannot be declared.  While under Linux, FPC seems to have an implicit assumption that the console and text files are both UTF8, under Windows it seems to assume UCS2 (and then transliterated to the current code page) for the console and (by default) UTF8 for text files. A built-in assumption of UCS2 for Windows text files would seem to be more consistent.

Under all OSs you should be able to set the actual code page for a text file and the code page that input should be transliterated to.

On 05/09/2019 10:49, Tomas Hajny wrote:
On 2019-09-05 10:24, Tony Whyman wrote:
A few points:

1. IMHO: This is currently a Windows problem where the console buffer
is UCS2. Linux (and probably all other cases its UTF8 - to be
verified).
 .
 .

No, the subject refers to text files, not to console. Obviously, console output has its caveats, but that's something else - the possibly added functionality of being able to read and write text files with UTF-16 encoding using Read(Ln)/Write(Ln) does not imply that you might be able to change the console to whatever codepage value directly (this is not the case today either: you can perfectly write UTF-8 to a text file under GO32v2 if using the fpWideString manager, but the underlying communication is performed using the console encoding, not the text file encoding, and translation is needed on the fly).

Tomas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to