From 8f9eb620acbc447cf9124b1fe5574a9f02115f45 Mon Sep 17 00:00:00 2001 From: Ichiroh Takiguchi Date: Mon, 29 Nov 2021 00:11:28 +0000 Subject: [PATCH] 8274784: jshell: Garbled character was displayed by System.out.println(...) on Japanese Windows Reviewed-by: naoto --- .../internal/org/jline/terminal/impl/AbstractTerminal.java | 2 +- .../jdk/jshell/execution/RemoteExecutionControl.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractTerminal.java b/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractTerminal.java index e92233c7b4f..8a464a67265 100644 --- a/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractTerminal.java +++ b/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractTerminal.java @@ -55,7 +55,7 @@ public abstract class AbstractTerminal implements Terminal { public AbstractTerminal(String name, String type, Charset encoding, SignalHandler signalHandler) throws IOException { this.name = name; this.type = type != null ? type : "ansi"; - this.encoding = encoding != null ? encoding : Charset.defaultCharset(); + this.encoding = encoding != null ? encoding : System.out.charset(); for (Signal signal : Signal.values()) { handlers.put(signal, signalHandler); } diff --git a/src/jdk.jshell/share/classes/jdk/jshell/execution/RemoteExecutionControl.java b/src/jdk.jshell/share/classes/jdk/jshell/execution/RemoteExecutionControl.java index 810e80acf47..d8818dee541 100644 --- a/src/jdk.jshell/share/classes/jdk/jshell/execution/RemoteExecutionControl.java +++ b/src/jdk.jshell/share/classes/jdk/jshell/execution/RemoteExecutionControl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -63,8 +63,8 @@ public class RemoteExecutionControl extends DirectExecutionControl implements Ex InputStream inStream = socket.getInputStream(); OutputStream outStream = socket.getOutputStream(); Map> outputs = new HashMap<>(); - outputs.put("out", st -> System.setOut(new PrintStream(st, true))); - outputs.put("err", st -> System.setErr(new PrintStream(st, true))); + outputs.put("out", st -> System.setOut(new PrintStream(st, true, System.out.charset()))); + outputs.put("err", st -> System.setErr(new PrintStream(st, true, System.err.charset()))); Map> input = new HashMap<>(); input.put("in", System::setIn); forwardExecutionControlAndIO(new RemoteExecutionControl(), inStream, outStream, outputs, input);