diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java b/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java index 3c15d3c3..9c0e7075 100644 --- a/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java +++ b/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java @@ -118,7 +118,7 @@ public String getScript() { String defaultShell = jenkins.getInjector().getInstance(Shell.DescriptorImpl.class).getShellOrDefault(ws.getChannel()); s = "#!"+defaultShell+" -xe\n" + s; } - shf.write(s, "UTF-8"); + shf.write(s, "CP1047"); shf.chmod(0755); scriptPath = shf.getRemote(); diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java b/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java index cbae4446..d5c77512 100644 --- a/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java +++ b/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java @@ -154,7 +154,7 @@ private static class WriteLog extends MasterToSlaveFileCallable { // TODO is this efficient for large amounts of output? Would it be better to stream data, or return a byte[] from the callable? byte[] buf = new byte[(int) toRead]; raf.readFully(buf); - sink.write(buf); + sink.write(new String(buf, "CP1047").getBytes()); } finally { raf.close(); } @@ -172,7 +172,7 @@ static class StatusCheck extends MasterToSlaveFileCallable { public Integer invoke(File f, VirtualChannel channel) throws IOException, InterruptedException { if (f.exists() && f.length() > 0) { try { - String fileString = Files.readFirstLine(f, Charset.defaultCharset()); + String fileString = Files.readFirstLine(f, Charset.forName("CP1047")); if (fileString == null || fileString.isEmpty()) { return null; } else {