当前位置: 技术问答>java相关
一个使用udp协议发送数据报时中文为何会成为乱码的问题
来源: 互联网 发布时间:2015-07-25
本文导语: 本人使用以下代码从文本框中获取一个String的数据,然后再转为byte类型的数组发送 try { byte data[]=new byte[64]; msg.getText().getBytes(0,msg.getText().length(),data,0); msg.setText(""); InetAddress address=InetAddress.getByName(dest_address.getText));...
本人使用以下代码从文本框中获取一个String的数据,然后再转为byte类型的数组发送
try
{
byte data[]=new byte[64];
msg.getText().getBytes(0,msg.getText().length(),data,0);
msg.setText("");
InetAddress address=InetAddress.getByName(dest_address.getText));
DatagramSocket socket = new DatagramSocket();
DatagramPacket packet = new DatagramPacket(data, 64, address, 9999);
socket.send(packet);
socket.close();
}
catch(Exception e)
{
}
再用以下代码接收
try
{
DatagramPacket packet = new DatagramPacket(buffer,buffer.length);
DatagramSocket socket = new DatagramSocket(9999);
socket.receive(packet);
String s = new String(buffer,0);
System.out.println(s);
socket.close();
}
catch (Exception e)
{
}
当发送的内容包含有中文时,为什么接收到后输出的内容会成为乱码?
try
{
byte data[]=new byte[64];
msg.getText().getBytes(0,msg.getText().length(),data,0);
msg.setText("");
InetAddress address=InetAddress.getByName(dest_address.getText));
DatagramSocket socket = new DatagramSocket();
DatagramPacket packet = new DatagramPacket(data, 64, address, 9999);
socket.send(packet);
socket.close();
}
catch(Exception e)
{
}
再用以下代码接收
try
{
DatagramPacket packet = new DatagramPacket(buffer,buffer.length);
DatagramSocket socket = new DatagramSocket(9999);
socket.receive(packet);
String s = new String(buffer,0);
System.out.println(s);
socket.close();
}
catch (Exception e)
{
}
当发送的内容包含有中文时,为什么接收到后输出的内容会成为乱码?
|
需要转换一次编码
public class toChinese
{
public String toChinese(String strvalue) {
try
{
if (strvalue == null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}
catch (Exception e)
{
return null;
}
}
};
public class toChinese
{
public String toChinese(String strvalue) {
try
{
if (strvalue == null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}
catch (Exception e)
{
return null;
}
}
};