积极答复者
tcp传输中中文乱码的问题

问题
-
用于发送的方法
public void Send(string c,ref Stream write)////////////////////////////////////////////////
{
try
{
c += '\n';
byte[] a;
a = System.Text.Encoding.Unicode.GetBytes(c);
write.Flush();
write.Write(a, 0,256);
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}用于接收的方法
public string Receive()/////////////////////////////////////////////////////
{
string a;
a = read.ReadLine();
return a;
}拜托给个完整点的解决办法,小弟新手。求不吝赐教
答案
-
你将字符串转换成bit类型的
接受后要逆向处理就好了。(用流读出来,然后在转换)
你直接读出来当然有问题了。
family as water- 已建议为答案 Mio_MiaoModerator 2011年1月12日 8:06
- 已标记为答案 Mio_MiaoModerator 2011年1月17日 8:12
-
那一句,Write(a, 0, 256),应该是 Write(a, 0, a.Length) 吧?
还有就是楼上说的,利用 System.Text.Encoding.Unicode.GetString(byte[]) 把读出来的 byte[] 转回去 string 就可以了。
Mark Zhou- 已建议为答案 Mio_MiaoModerator 2011年1月12日 8:06
- 已标记为答案 Mio_MiaoModerator 2011年1月17日 8:12
全部回复
-
你将字符串转换成bit类型的
接受后要逆向处理就好了。(用流读出来,然后在转换)
你直接读出来当然有问题了。
family as water- 已建议为答案 Mio_MiaoModerator 2011年1月12日 8:06
- 已标记为答案 Mio_MiaoModerator 2011年1月17日 8:12
-
那一句,Write(a, 0, 256),应该是 Write(a, 0, a.Length) 吧?
还有就是楼上说的,利用 System.Text.Encoding.Unicode.GetString(byte[]) 把读出来的 byte[] 转回去 string 就可以了。
Mark Zhou- 已建议为答案 Mio_MiaoModerator 2011年1月12日 8:06
- 已标记为答案 Mio_MiaoModerator 2011年1月17日 8:12