String は「Java の char」で構成される。
すなわち String は UTF-16 で持つ。(LEかBEかは実装依存。シリアライズされるときはBE)

> msg = new String(msg.getBytes("MS932"), "EUC-JP");
> msg.getBytes("MS932")
で msg を Unicode から MS932(MS拡張のShift_JIS) に直し、バイト配列で得る。
> msg = new String( MS932_bytes, "EUC-JP");
で MS932(MS拡張のShift_JIS)のバイト配列を 「EUC-JP のバイト配列とみなして」Unicode に変換する。

文字化けしないほうがおかしい。