Я хочу напечатать некоторые специальные символы (латинский, греческий алфавит, китайский и т. Д.) В Kotlin, но всегда получаю ???????
в качестве вывода:
>> println("Δ")
>> ??????
Также пробовал Unicode:
>> println("\u0394")
>> ?
IDE, которую я использовал: IntelliJ IDEA 2018.1.3.
Консоль, которую я использовал: Kotlin REPL.
jdk: 9.0.4
Версия Kotlin: 1.2.31 (JRE 9.0.4 + 11)
Как мне напечатать правильную строку?
Обновление (20180512):
Я также пытался установить Kotlin черезДоморощенный и запустить kotlinc
в моем собственном терминале, все работает как положено.Это просто не работает в Kotlin REPL от IntelliJ.В любое место, куда я могу пойти, чтобы это исправить?
Обновление (20180513):
Попробовал следующее:
- Очистить кэш IntelliJ;
- Переустановил IntelliJ;
- Обновите IntelliJ и Kotlin;
- Перезапустите MacOS (10.12.6);
- Обновите Java до 10.0.1.
Используется println
в Kotlin REPL снова, ???
изменен на конкретную ошибку:
println("Δ")
Internal error occurred. Please, send report to developers.
exception: java.nio.charset.MalformedInputException: Input length = 1
at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:281)
at kotlin.io.ConsoleKt.tryDecode(Console.kt:198)
at kotlin.io.ConsoleKt.readLine(Console.kt:162)
at kotlin.io.ConsoleKt.readLine(Console.kt:149)
at org.jetbrains.kotlin.cli.jvm.repl.reader.IdeReplCommandReader.readLine(IdeReplCommandReader.kt:22)
at org.jetbrains.kotlin.cli.jvm.repl.ReplFromTerminal.one(ReplFromTerminal.kt:98)
at org.jetbrains.kotlin.cli.jvm.repl.ReplFromTerminal.doRun(ReplFromTerminal.kt:69)
at org.jetbrains.kotlin.cli.jvm.repl.ReplFromTerminal.access$doRun(ReplFromTerminal.kt:38)
at org.jetbrains.kotlin.cli.jvm.repl.ReplFromTerminal$Companion.run(ReplFromTerminal.kt:175)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:105)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:63)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:107)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:96)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:72)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:38)
at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:171)
at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:162)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:329)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)
Internal error occurred. Please, send report to developers.
Process finished with exit code 2
Кажется, кодировка символов чтения отличается от кодировки записи.Но я не могу найти способ настроить кодировку Kotlin REPL.
Кроме того, я обнаружил 2 java-процесса, работающих при открытии Kotlin REPL, и каждый раз, когда мне нужно убить один, чтобы без проблем запустить Kotlin REPL :
image: 2 запущенных java-процесса
Я не уверен, связаны ли они, поэтому я прикрепил изображение в качестве ссылки.Разработчики IntelliJ уже сообщили об этом, но для большинства людей эта ошибка, по-видимому, не распространена.