string msg; rakStream4Recv.Read(out msg); msg = utf8.GetString(System.Text.Encoding.Default.GetBytes(msg));I think bytes on net was treated as local ASCII,and implicit convert from default=>unicode .this convertion is obviously WRONG!so I'd like to use default encoding to decode msg , restore them to the original utf8 string,at last encode them from utf8 to unicode. The PROBLEM is sometimes,the implicit convertion made some character lose,"System.Text.Encoding.Default.GetBytes" can't restore original utf8 byte[].-now,I'll change my mind.I should read utf8 byte[] from BitStream by two separate step: