Scala / Обработка специальных символов / Как превратить m�dchen в mädchen? - PullRequest
2 голосов
/ 04 мая 2020

У меня есть приложение Scala Akka, где я выполняю сценарии python внутри Futures с ProcessBuilder.

К сожалению, специальные символы не отображаются правильно, поэтому я получаю вместо mädchen-> m�dchen (äöü -> �)

Если я выполню python Сценарий через командную строку дает ли мне правильный вывод "mädchen", поэтому я предполагаю, что он не имеет ничего общего со сценарием python, а каким-то образом связан с моим Scala чтением ввода.

Python Паук:

print("mädchen")

Scala:

val proc = Process("scrapy runspider spider.py")

var output : String = ""
val exitValue = proc ! ProcessLogger (
   (out) => if( out.trim.length > 0 )
     output += out.trim,
   (err) =>
     System.err.printf("e:%s\n",err)
)

println(exitValue) // 0 -> succ.
println(output)    // m�dchen -> should be mädchen

Я уже пробовал многие мысли, а также читал, что строки по умолчанию UTF -8, поэтому я не уверен, почему я получаю эти знаки вопроса.

Также я пытался безуспешно:
var byteBuffer: ByteBuffer = StandardCharsets.UTF_8.encode (output.toString ())
val str = new String (output.toString (). getBytes (), "UTF-8")


Обновление:

Похоже, windows связанная проблема, следующая инструкция решит эту проблему: Использование кодировки UTF-8 (CHCP 65001) в командной строке / Windows Powershell (Windows 10) * 10 31 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...