我copy了一个数据类,但是,当我将utf8修改成Unicode的时候,汉字发送还是出现了问题。我觉得是那个长度的问题,但是,我不懂怎么弄的。using System;
using System.Collections.Generic;
using System.Text;namespace UClient
{
    class Data
    {
        public Data()
        {
            this.cmdCommand = Command.Null;
            this.strMessage = null;
            this.strName = null;
        }        public Data(byte[] data)
        {
            this.cmdCommand = (Command)BitConverter.ToInt32(data, 0);            int nameLen = BitConverter.ToInt32(data, 4);            int msgLen = BitConverter.ToInt32(data, 8);            if (nameLen > 0)
                this.strName = Encoding.UTF8.GetString(data, 12, nameLen);
            else
                this.strName = null;            if (msgLen > 0)
                this.strMessage = Encoding.UTF8.GetString(data, 12 + nameLen, msgLen);
            else
                this.strMessage = null;
        }        public byte[] ToByte()
        {
            List<byte> result = new List<byte>();            result.AddRange(BitConverter.GetBytes((int)cmdCommand));            if (strName != null)
                result.AddRange(BitConverter.GetBytes(strName.Length));
            else
                result.AddRange(BitConverter.GetBytes(0));            if (strMessage != null)
                result.AddRange(BitConverter.GetBytes(strMessage.Length));
            else
                result.AddRange(BitConverter.GetBytes(0));            if (strName != null)
                result.AddRange(Encoding.UTF8.GetBytes(strName));            if (strMessage != null)
                result.AddRange(Encoding.UTF8.GetBytes(strMessage));            return result.ToArray();
        }        public string strName;      //Name by which the client logs into the room
        public string strMessage;   //Message text
        public Command cmdCommand;  //Command type (login, logout, send message, etcetera)
    }
}