通过socket发送出去,但是接收方只接受UTF-8的中文
好像C#得默认编码是unicode,网上说所有的string都是unicode,那我怎么才能把textbox中得到的string转成utf-8?
说 Encoding.Convert(Encoding.Default, Encoding.UTF8,Encoding.Default.GetBytes(textbox.Text))这样是没用的?
试了好多办法都不行啊
11 个解决方案
#1
byte[] bytes = Encoding.UTF8.GetBytes(textbox.Text);
发送byte
发送byte
#2
void of_SendMessage(string IP, int Port ,string Mess)
{
IPEndPoint MyRemoteEndPoint = new IPEndPoint(IPAddress.Parse(IP), Port);
UdpClient MyClient = new UdpClient();
Byte[] MyData = System.Text.Encoding.UTF8.GetBytes(Mess);
MyClient.Send(MyData, MyData.Length, MyRemoteEndPoint);
}
{
IPEndPoint MyRemoteEndPoint = new IPEndPoint(IPAddress.Parse(IP), Port);
UdpClient MyClient = new UdpClient();
Byte[] MyData = System.Text.Encoding.UTF8.GetBytes(Mess);
MyClient.Send(MyData, MyData.Length, MyRemoteEndPoint);
}
#3
你发送时,用Encoding.UTF8转一下就行了
#4
你发送时,用Encoding.UTF8转一下就行了
#5
一条数据既包含英文数字也包含中文,发送前先要Md5加密,再把md5数组和原数据拼接并发送出去,接收方要进行md5验证
我发送前即使转换了,也验证不通过……
#6
#7
MD5验证先本地测试下,如果本地能通过,就要对比接收方的验证方法了。
#8
如果全部是英文就能通过,有中文就出错
#9
你把本地加密和验证的代码贴出来,问题肯定是自己这里了。
#10
自己搞定了,先转UTF8进行MD5,再加上原数据,最后一起转UTF-8发送,OK,散分给大家
#11
有木代码看下。
#1
byte[] bytes = Encoding.UTF8.GetBytes(textbox.Text);
发送byte
发送byte
#2
void of_SendMessage(string IP, int Port ,string Mess)
{
IPEndPoint MyRemoteEndPoint = new IPEndPoint(IPAddress.Parse(IP), Port);
UdpClient MyClient = new UdpClient();
Byte[] MyData = System.Text.Encoding.UTF8.GetBytes(Mess);
MyClient.Send(MyData, MyData.Length, MyRemoteEndPoint);
}
{
IPEndPoint MyRemoteEndPoint = new IPEndPoint(IPAddress.Parse(IP), Port);
UdpClient MyClient = new UdpClient();
Byte[] MyData = System.Text.Encoding.UTF8.GetBytes(Mess);
MyClient.Send(MyData, MyData.Length, MyRemoteEndPoint);
}
#3
你发送时,用Encoding.UTF8转一下就行了
#4
你发送时,用Encoding.UTF8转一下就行了
#5
一条数据既包含英文数字也包含中文,发送前先要Md5加密,再把md5数组和原数据拼接并发送出去,接收方要进行md5验证
我发送前即使转换了,也验证不通过……
#6
#7
MD5验证先本地测试下,如果本地能通过,就要对比接收方的验证方法了。
#8
如果全部是英文就能通过,有中文就出错
#9
你把本地加密和验证的代码贴出来,问题肯定是自己这里了。
#10
自己搞定了,先转UTF8进行MD5,再加上原数据,最后一起转UTF-8发送,OK,散分给大家
#11
有木代码看下。