英語検索用: “Unmappable character for encoding UTF-8” error -> Your dependant jar will contain invalid encoded java source files.
タイトル通りです。
IntelliJで使用する標準JDKをJava9に更新してからというもの、「この文字は、エンコーディングutf8にマップできません」というエラーが出るようになり、しかもそれがどのファイルに起因するか全く不明という問題に悩まされてました。 IntelliJのどのログファイルを漁っても全くヒントに辿り着けなかった。
もちろん、すべてのファイルは正しくUTF-8でエンコードされています。
犯人→jarの中のソースファイル
で、別の理由でコンパイル済みclassの出力先ディレクトリを調べていた所、 なぜか依存ライブラリのクラスファイルが紛れ込んでいる。
はあ?なにこれ?と思いつつ、クラスファイルが生成されてしまった依存ライブラリのjarの中身を見てみると、なんとjavaのソースが紛れ込んでいるではありませんか。
そして、そのエンコーディングはShift_JIS。こいつか犯人は。
ちなみに、その依存ライブラリとはこれです。
このソースを取り除いてからフルビルドすると、「この文字は、エ(略)」のメッセージは二度と出なくなりました。
これってIntelliJの仕様?それともバグ?