We ran into this when javac's encoding had been accidentally defaulted to ascii. We have a java file with a comment containing utf-8 characters. When sbt compiles with a forked javac, it fails to compile. When sbt compiles with a local javac it compiles successfully, but prints the errors from javac as errors.
This is confusing because users expect compiler errors to cause a compilation failure.
The thing that's interesting is that it fails to compile as expected both locally and forked when the utf-8 character is in a char literal or a string literal.
I was able to verify this with the source version of sbt on the 0.13 branch with a change to JavaCompilerSpec, but I'm not sure how to approach fixing it.