Char类型内部使用16位二进制存储数据。这就是说Char最多只能存储65536个字符。汉字的数量就远远超出了这个数目。那怎么办?代理对(surrogate pair)解决这个问题。

在.net中使用 \Uxxxxxxx即可,注意是大写的U。

Char的几个静态方法:
ConvertToUtf32、 ConvertFromUtf32、 IsHighSurrogate、 IsLowSurrogate

System.Text中的几个类:
UnicodeEncoding、UTF8Encoding、UTF32Encoding


另外可以参考:
http://msdn.microsoft.com/zh-cn/library/system.char.converttoutf32.aspx
http://msdn.microsoft.com/zh-cn/library/xcwwfbb8.aspx
http://www.yoda.arachsys.com/csharp/faq/#escapes