Scalaのクラスファイルをjavapで逆アセンブルすると、目も当てられない文字化けに苛まされる、という話で。
.@shigemk2 知っててもあまり役に立たない情報ですけど、まず、とあるアノテーションが勝手につくようになっていて、そこの「bytesという名前のString型のところ」
https://t.co/JFu8WTfR4Z に「UTF7で」情報が入る、という実装になってるので
— Kenji Yoshida (@xuwei_k) 2015, 2月 9
@xuwei_k そうなんですね。場合がある、と申し上げましたのは、$のついたクラスファイルでjavap -vしますと文字化けしませんので、2つのクラスファイルの違いがあまり良くわかっておりません。$クラスの場合はScalaSignatureのアノテーションはありませんでした。
— 炭鉱ハッカー しげまーくつー (@shigemk2) 2015, 2月 9
さっくり言うと、$のついたクラスファイルだとjavapで逆アセンブルしても文字化けしないけど、ふつうのクラスファイルだとUTF-7で逆アセンブルするアノテーションがつくみたいです。