3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerShellでSBTの文字化けとjava.nio.charset.MalformedInputException: Input length = 1を倒す

Posted at

開発で文字コード is UTF-8だと、WindowsはShift-JISなどが大好きなので文字化けする。

PowerShellを使っていると、文字コード周りでいつも爆死してしまう。。。

sbt起動時や実行時の文字化け

JVMオプションで -Dfile.encoding=UTF-8を指定していても、sbtの起動時や実行時には文字化けしてしまった。

まず、PowerShell側のデフォルト文字コードはCP932なので、 chcp 65001コマンドで文字コードをUTF-8にしておく。

次に、この記事のようなことをする。

MSYS2とsbtの設定

記事内で build.sbtに書く部分を ~/.sbt/1.0/global.sbtに書いた。
(全てのプロジェクトに適用したくて)

やったか!?


余談

sbtの設定 (configとか)周りで色んな情報があったけど、僕の場合はどれもダメだった(別のケースではいけるかも)

Windowsでsbt!@Git Bash
sbt 実行時に文字コードを UTF-8 に設定する
【解決済み】【Scala】WindowsでGit Bash利用時のsbt文字化け問題とその対策

java.nio.charset.MalformedInputException: Input length = 1

これも、文字コードが合わない時にエンカウントしがちなエラーっぽい。

Scalaでファイル読み込みの際に遭遇する( fromFileでも fromResourceでも)
MalformedInputException when trying to read entire file

どうやらシステム?のデフォルトエンコーディングを用いるらしく、多分WindowsだとデフォルトがUTF-8じゃないからお亡くなりになってそう。

"MalformedInputException: Input length = 1 " exception solution for Scala and Java

How to read a text file with mixed encodings in Scala or Java?

上記で紹介されているように、ファイル読み込み処理で明示的に文字コード指定すれば良さそう。

他にも、

scala.io.Source.fromResource("v2okimochi_file_name")

と書いてMalformedInputExceptionだった場合は、

scala.io.Source.fromResource("v2okimochi_file_name")("UTF-8")

にすると良さそう。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?