As Dan-o said:
public static byte[] ToByteArray (this String HexString) {
int NumberChars = HexString.Length;
var bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2) {
bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16);
}
return bytes;
}
Then Encoding.Unicode.GetString(ToByteArray(myString));
If that comes out jumbled, try Encoding.BigEndianUnicode.GetString(...)
instead.