diff --git a/java/java-impl/src/com/intellij/javadoc/JavadocGeneratorRunProfile.java b/java/java-impl/src/com/intellij/javadoc/JavadocGeneratorRunProfile.java index 27501aa01ce2..d65dca863bf3 100644 --- a/java/java-impl/src/com/intellij/javadoc/JavadocGeneratorRunProfile.java +++ b/java/java-impl/src/com/intellij/javadoc/JavadocGeneratorRunProfile.java @@ -31,16 +31,15 @@ import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import org.jetbrains.annotations.NotNull; import javax.swing.*; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; +import java.io.*; +import java.nio.charset.Charset; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; @@ -220,8 +219,9 @@ public class JavadocGeneratorRunProfile implements ModuleRunProfile { try { File argsFile = FileUtil.createTempFile("javadoc_args", null); + Charset cs = CharsetToolkit.getPlatformCharset(); - try (PrintWriter writer = new PrintWriter(new FileWriter(argsFile))) { + try (PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(argsFile), cs))) { Set modules = new LinkedHashSet<>(); Set sources = new HashSet<>(); Runnable r = () -> myGenerationOptions.accept(new MyContentIterator(myProject, modules, sources)); @@ -285,9 +285,10 @@ public class JavadocGeneratorRunProfile implements ModuleRunProfile { } } - myArgFileFilter.setPath(argsFile.getPath()); + myArgFileFilter.setPath(argsFile.getPath(), cs); parameters.add("@" + argsFile.getPath()); OSProcessHandler.deleteFileOnTermination(cmdLine, argsFile); + cmdLine.setCharset(cs); } catch (IOException e) { throw new CantRunException(JavadocBundle.message("javadoc.generate.temp.file.error"), e); diff --git a/platform/platform-impl/src/com/intellij/execution/filters/ArgumentFileFilter.kt b/platform/platform-impl/src/com/intellij/execution/filters/ArgumentFileFilter.kt index 0833cec73402..c00d64713ec5 100644 --- a/platform/platform-impl/src/com/intellij/execution/filters/ArgumentFileFilter.kt +++ b/platform/platform-impl/src/com/intellij/execution/filters/ArgumentFileFilter.kt @@ -1,7 +1,8 @@ -// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.execution.filters import java.io.File +import java.nio.charset.Charset /** * A console filter which looks for a given path in an output and creates a link for viewing a content of that file. @@ -16,9 +17,10 @@ class ArgumentFileFilter() : Filter { this.fileText = fileText } - fun setPath(path: String) { + @JvmOverloads + fun setPath(path: String, charset: Charset = Charsets.UTF_8) { filePath = path - fileText = File(path).readText() + fileText = File(path).readText(charset) } override fun applyFilter(line: String, entireLength: Int): Filter.Result? {