import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
-import java.nio.charset.Charset;
import static net.sourceforge.argparse4j.DefaultSettings.VERSION_0_9_0_DEFAULT_SETTINGS;
var outputType = outputTypeInput == null
? command.getSupportedOutputTypes().stream().findFirst().orElse(null)
: outputTypeInput;
- var writer = new BufferedWriter(new OutputStreamWriter(System.out, Charset.defaultCharset()));
+ var writer = new BufferedWriter(new OutputStreamWriter(System.out, IOUtils.getConsoleCharset()));
var outputWriter = outputType == null
? null
: outputType == OutputType.JSON ? new JsonWriterImpl(writer) : new PlainTextWriterImpl(writer);
m.setIgnoreAttachments(ignoreAttachments);
final var jsonOutputWriter = (JsonWriter) outputWriter;
- final Supplier<String> lineSupplier = IOUtils.getLineSupplier(new InputStreamReader(System.in));
+ final Supplier<String> lineSupplier = IOUtils.getLineSupplier(new InputStreamReader(System.in,
+ IOUtils.getConsoleCharset()));
final var handler = new SignalJsonRpcDispatcherHandler(jsonOutputWriter, lineSupplier, false);
handler.handleConnection(m);
import org.slf4j.LoggerFactory;
import java.io.IOException;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
if (readMessageFromStdin || (messageText == null && sticker == null)) {
logger.debug("Reading message from stdin...");
try {
- messageText = IOUtils.readAll(System.in, Charset.defaultCharset());
+ messageText = IOUtils.readAll(System.in, IOUtils.getConsoleCharset());
} catch (IOException e) {
throw new UserErrorException("Failed to read message from stdin: " + e.getMessage());
}
private IOUtils() {
}
+ public static Charset getConsoleCharset() {
+ final var console = System.console();
+ return console == null ? Charset.defaultCharset() : console.charset();
+ }
+
public static String readAll(InputStream in, Charset charset) throws IOException {
var output = new StringWriter();
var buffer = new byte[4096];