string s1 = "\u1f8ff";
byte[] b1 = System.Text.Encoding.Unicode.GetBytes (s1);
s1的值如图1

b1的值如图2

1f8ff十六进制=129279十进制
如何根据129279得到s1 的值,就如图1
------解决思路----------------------
\u 语法不支持超两字节的字符,你那样写就变成了U+1F8F 和 'f' 两个字符。由于.net的char类型是16位的unicode编码,超两字节的unicode字符不是一个char可以表示的。
可以使用 string s1 = "\U0001f8ff"; 或者 string s1 = char.ConvertFromUtf32(0x1f8ff); 来获得这个字符的string形式,它内部是2个char表示的一个unicode surrogate pair。
------解决思路----------------------
http://bbs.csdn.net/topics/390721598