First of all, .NET natively support Unicode UTF-16 encoding which covers all code points; actually, the code point is encoded with 2 bytes or 4 bytes, which covers not only BMP (Base Multilingual Plane, 0 to 0xFFFF) but all characters above it. To best of my knowledge, all Chinese code points sit in BMP. So so all other UTFs supporting full Unicode: UTF-8 and UTF-32. So, you don't need anything to "encode" Chinese, it is already supported.
You need to use encoding only to read/write data to stream. Prefer UTF-8, which is the standard de-facto for most applications including the Web. Use
System.Text.Encoding.UTF8
and
System.Text.UTF8Encoding
, see
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx[
^].
You might need better understanding of Unicode.
This is not a 16-bit code! It standardize mapping between characters as cultural entities regardless of concrete glyphs and integer values understood in its abstract mathematical meaning, regardless of bit presentation of data in computers. The code points go well above 0xFFFF. On top of this, there are UTFs.
See:
http://unicode.org/[
^],
http://unicode.org/faq/utf_bom.html[
^].
—SA