Да, похоже, это все равно приведет к потере данных:
using System;
using System.Text;
class Test
{
static void Main(string[] args)
{
Encoding shiftJis = Encoding.GetEncoding(932);
byte[] original = new byte[] { 0x87, 0x90 };
string text = shiftJis.GetString(original);
byte[] backAgain = shiftJis.GetBytes(text);
Console.WriteLine("{0:x}{1:x}", backAgain[0], backAgain[1]);
}
}
Это печатает 81E0, как и предсказывалось страницей, на которую вы ссылались.