Screaming Loud

日々是精進

PlayFrameworkで出たplay.PlayExceptions$CompilationException: Compilation error[IO error while decoding ... ]

PlayFrameworkを使って複数人で開発していたところ、
あるブランチをマージした途端、
急に

play.PlayExceptions$CompilationException: Compilation error[IO error while decoding /hoge/target/scala-2.11/src_managed/main/routes_reverseRouting.scala with UTF-8
Please try specifying another one using the -encoding option]
        at play.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
        at play.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
        at scala.Option.map(Option.scala:145) ~[scala-library-2.11.2.jar:na]
        at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:234) ~[na:na]
        at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:229) ~[na:na]

とかが急に出てきて、何だ!??となりました。

解決策

何が原因か調べていたところ、
routesファイルの文字コードがいつの間にかUTF-8からASCIIになっていました。

ただ、Intellijでの文字コード表記がUTF-8のままだったので気づきませんでした。

$nkf -g routes
ASCII

とがっつり出てきたので、

$nkf -w --overwrite routes
$nkf -g routes
UTF-8

そこを上記のように直して問題なくコンパイルが通りました。