On Sun, 27 Apr 2025 10:51:33 GMT, Jan Lahoda <[email protected]> wrote:
>> src/java.base/share/classes/java/lang/IO.java line 192:
>>
>>> 190: String enc = System.getProperty("stdin.encoding", "");
>>> 191: Charset cs = Charset.forName(enc, StandardCharsets.UTF_8);
>>> 192: br = new BufferedReader(new InputStreamReader(System.in,
>>> cs));
>>
>> I suspect we need to fall back to `stdout.encoding` first before UTF-8
>> especially for Windows if Java does not set `stdin.encoding` automatically
>> when launched.
>
> I believe that after:
> https://github.com/openjdk/jdk/pull/24738
> the `stdin.encoding` property is set when the process is connected to a
> console, which is probably the main case where the encoding can be detected
> automatically.
I misunderstood that I have tested `stdin.encoding`.
I cannot confirm that `stdin.encoding` is changed in Windows to proper ones
because it has not been included in the latest EA build (20) and I cannot build
master for Windows. However, it is changed to `US-ASCII` in Ubuntu when I
change `LANG`. I will believe its author until the latest EA build is updated.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24438#discussion_r2062641495