下記を実行したら81E0となります。
なぜ、こうなるのでしょうか?
SunのVMで5を使っています。

byte[] b = new byte[2];
b[0] = (byte)0x87;
b[1] = (byte)0x90;

HexDumpEncoder dump = new HexDumpEncoder();
System.out.println(dump.encode(new String(b,"Windows-31J").getBytes("Windows-31J")));