new String(str.getBytes("UTF-16"), "MS932")
Javaのネイティブの文字エンコーディングはUTF-16なので
間違ってMS932の状態で入っているStringからUTF-16としてつまり無変換でバイトの配列として取り出し
改めてMS932でStringにする