diff --git a/src/main/kotlin/org/rust/lang/core/macros/proc/ProcMacroServerPool.kt b/src/main/kotlin/org/rust/lang/core/macros/proc/ProcMacroServerPool.kt index faa30552d9e..20f8761867e 100644 --- a/src/main/kotlin/org/rust/lang/core/macros/proc/ProcMacroServerPool.kt +++ b/src/main/kotlin/org/rust/lang/core/macros/proc/ProcMacroServerPool.kt @@ -165,8 +165,8 @@ private class ProcMacroServerProcess private constructor( private val process: Process, private val timeout: Long = Registry.get("org.rust.macros.proc.timeout").asInteger().toLong(), ) : Runnable, Disposable { - private val stdout: BufferedReader = BufferedReader(InputStreamReader(process.inputStream)) - private val stdin: Writer = OutputStreamWriter(process.outputStream) + private val stdout: BufferedReader = BufferedReader(InputStreamReader(process.inputStream, Charsets.UTF_8)) + private val stdin: Writer = OutputStreamWriter(process.outputStream, Charsets.UTF_8) private val lock = ReentrantLock() private val requestQueue = SynchronousQueue>>() diff --git a/src/test/kotlin/org/rust/lang/core/macros/proc/RsProcMacroExpansionTest.kt b/src/test/kotlin/org/rust/lang/core/macros/proc/RsProcMacroExpansionTest.kt index c0a5c69fca7..78b4e28a380 100644 --- a/src/test/kotlin/org/rust/lang/core/macros/proc/RsProcMacroExpansionTest.kt +++ b/src/test/kotlin/org/rust/lang/core/macros/proc/RsProcMacroExpansionTest.kt @@ -122,6 +122,7 @@ class RsProcMacroExpansionTest : RsWithToolchainTestBase() { checkExpansion(lib, "as_is", ".", ".") checkExpansion(lib, "as_is", "..", "..") checkExpansion(lib, "as_is", "fn foo() {}", "fn foo() {}") + checkExpansion(lib, "as_is", "\"Привет\"", "\"Привет\"") // "Hello" in russian, a test for non-ASCII chars checkExpansion(lib, "read_env_var", "", "\"foo value\"", env = mapOf("FOO_ENV_VAR" to "foo value")) checkExpansion(lib, "do_println", "", "") checkExpansion(lib, "do_eprintln", "", "")