网络编程中文乱码问题
程序代码:
public void SendMSGType(string msg, string type) { if (type == "notice") SendPacketToClient(Opcodes.LocalNotice(msg)); }
程序代码:
public static Packet LocalNotice(string msg) { return PacketBuilder.BuildPacket(0x3026, (byte)7, msg); }
程序代码:
private static void BuildPacket(this Packet pck,object[] content) { if(content.Count() > 0) { Parallel.ForEach(content.AsParallel(), obj => { if (obj.GetType() == typeof(string)) pck.WriteAscii(obj); if (obj.GetType() == typeof(ushort)) pck.WriteUInt16(obj); if (obj.GetType() == typeof(uint)) pck.WriteUInt32(obj); if (obj.GetType() == typeof(ulong)) pck.WriteUInt64(obj); }); } }
程序代码:
public void WriteAscii(String value) { WriteAscii(value, 1254); } public void WriteAscii(String value, int code_page) { lock (m_lock) { if (m_locked) { throw new Exception("无法在锁定的数据包上进行写操作。"); } //这3行代码是程序原版的 //byte[] bytes = Encoding.GetEncoding(code_page).GetBytes(value); //m_writer.Write((ushort)bytes.Length); //m_writer.Write(bytes); //这3行代码是我写的,但转换为UTF8编码,游戏内中文依旧乱码。 byte[] bytes = Encoding.GetEncoding("utf-8").GetBytes(value); m_writer.Write((ushort)bytes.Length); m_writer.Write(bytes); } }
上面是整个调用过程涉及的函数,功能是向一个游戏内写入一些文本信息。
问题:该程序不支持中文字符。
请问如何修改才能支持中文字符?
我对C#不了解,希望大家帮帮我,谢谢!