MS932.defaultCharset()はMS932が取得できるとは限らない。
先日のエントリのフォロー。
と書いたけど、これは間違いでした。正確には、実行環境に依存します。
MS932.defaultCharset()ではCharset.defaultCharset()が呼ばれ、実行してるOSのデフォルト文字セットを取得しています。例えばwindows環境で「IBM037.defaultCharset()」*1としても、MS932を取得します。
多分中身的には、シンプルにこんな感じなんだろうと思います。
Charset.forName(System.getProperty("file.encoding"));
該当するコードは修正しました。また一つ勉強になりました><
というわけで、念のためお知らせしておきます。>>id:syttruさん
*1:IBM037ってなんぞ?