当前位置:  技术问答>java相关

****157分,解决立马给分,UDP中文问题!!!!!

    来源: 互联网  发布时间:2015-03-25

    本文导语:  一个很简单的UDP程序,发送英文正确,中文出现乱码,估计是字符集转换有问题,请帮忙! 发送方程序: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.net.*; public class UdpTest extends JFra...

一个很简单的UDP程序,发送英文正确,中文出现乱码,估计是字符集转换有问题,请帮忙!
发送方程序:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
public class UdpTest extends JFrame
{
private JTextArea textArea=new JTextArea(200,120);
private Container con=null;
private JButton clear=new JButton("清除");
private JButton send=new JButton("发送");
private DatagramSocket udp=null;
public UdpTest()
{
try
{
udp=new DatagramSocket(8018);
}
catch(SocketException e){}
con=getContentPane();
con.setLayout(new BorderLayout());
con.add(new JScrollPane(textArea),BorderLayout.CENTER);
JPanel temp=new JPanel(new FlowLayout());
temp.add(clear);
temp.add(send);
con.add(temp,BorderLayout.SOUTH);
clear.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
textArea.setText("");
}
});
send.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
String dat=textArea.getText();
byte[] dataBuf=new byte[512];
    String newDat=new String(dat.getBytes(),"gb2312");
newDat.getBytes(0,newDat.length(),dataBuf,0);
DatagramPacket packet=new DatagramPacket(dataBuf,512,InetAddress.getByName("10.10.111.33"),8018);
udp.send(packet);
}
catch(Exception exc){}
}
});
setBounds(200,200,200,200);
setResizable(false);
}
public static void main(String[] args)
{
(new UdpTest()).show();
}
}
接受方程序
import java.io.*;
import java.net.*;
public class UdpReceive
{
public static void main(String[] args)
{
try
{
    DatagramSocket udpReceive=new DatagramSocket(8018);
byte[] dataBuf=new byte[512];
    DatagramPacket packet=new DatagramPacket(dataBuf,512);
System.out.println("开始在8018端口监听……");
    while(true)
    {
udpReceive.receive(packet);
System.out.println(new String(packet.getData(),"gb2312"));
    }
}
catch(Exception e){}
}
}

|
预备知识: 
 1.字节和unicode 
  Java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式 
  是使用字节流的。 因此Java要对这些字节流经行转化。char是unicode的,而byte是字节. 
  Java中byte/char互转的函数在sun.io的包中间有。其中ByteToCharConverter类是中调度, 
  可以用来告诉你,你用的Convertor。其中两个很常用的静态函数是 
   public static ByteToCharConverter getDefault() ; 
   public static ByteToCharConverter getConverter(String encoding); 
  如果你不指定converter,则系统会自动使用当前的Encoding,GB平台上用GBK,EN平台上用 
  8859_1 
   
  我们来就一个简单的例子: 
     "你"的gb码是:0xC4E3 ,unicode是0x4F60 
     你用: 
     --encoding="gb2312"; 
     --byte b[]={(byte)'u00c4',(byte)'u00E3'}; 
     --convertor=ByteToCharConverter.getConverter(encoding); 
     --char [] c=converter.convertAll(b); 
     --for(int i=0;i

    
 
 

您可能感兴趣的文章:

  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 我的rh linux 8 不支持中文,中文显示乱码,该安装什么?或怎么解决?
  • 请教:关于英文,简体中文,繁体中文在JSP/JAVA中的整体解决方案!!!
  • Get中文乱码IE浏览器Get中文乱码解决方案
  • 请问各位,我装了Mandrake Linux 10.1版,选的简体中文,可是进去后菜单的中文都是方格,怎么解决啊?
  • 问题3:如何解决linux hat 9.0 shell下中文乱码问题?如何输入中文?
  • zip包在中文centos上解压后, 其中如果有中文文件名则为乱码, 怎么解决??
  • 请问:Linux不能显示U盘中中文文件名,但能显示中文的内容?怎么解决?
  • 我在Red Hat9下装netbeans中文装,可是在安装时和安装后界面中的中文一直是□形状,要怎么解决。
  • 请教:关于英文,简体中文,繁体中文在JSP/JAVA中的整体解决方案!!!!!
  • turbolinux10中原来是英文操作系统,现在想变成支持中文,请问有什么好方法,如果能通过增加中文包来解决,请提供一点详细的资料。
  • 我安装redhat linux9.0,选择简体中文,为什么在命令行模式下的中文显示为乱码呢,如何解决?
  • php网页标题中文乱码如何解决
  • Java国际化时怎么不能正确读取.properties文件中的中文字符串,如何解决其中的中文问题?
  • !!!!我的redhat9.01是简体中文版的,但文件名和xpdf不能显示中文. 请问如何解决?
  • 如何解决weblogic的中文问题
  • Solaris Sparc 9 中文乱码解决?
  • 为什么RH9不能显示中文,怎么解决?????
  • Android Studio的中文乱码问题解决方法
  • 安装Redhat选者简体中文,执行Xconfigurator,屏幕上看到乱码,如何解决?
  • 大家好.我的OPEN OFFICE 不能显示中文,应该如何解决呀?
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 硬盘分区后出现的问题,急待解决!!问题解决马上给分。
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 解决多级索引速度慢的问题可否像解决多级页表那样使用TLB?
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 呵呵,前段时间Ubuntu服务器版的问题总算解决了,解决方法就是重新安装桌面版-_-!
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 问发这问题"arprequest : Invalid argument"的朋友,你的问题解决了吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • secureCRT下Linux终端汉字乱码解决方法
  • VS2005解决方案管理器中不显示解决方案节点的解决办法
  • window.onload事件覆盖掉body onload事件(window.onload和html body onload事件冲突)解决办法
  • 有高手能破解RAR的密码吗,至今没有找到人能解决?(先只给10分意思意思,若解决,至少给解决的人500分!说话算话!)
  • andriod中UIScrollView无法正常滚动的解决方法
  • 解决 select 挡住div的解决方法
  • windows server2008上PowerBuilder程序系统错误解决方法
  • 解决!解决!求助如何安装多系统!
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • Liunx命令tar压缩出现如下错误该怎么解决?急需解决!感谢
  • 安装hadoop时出现内存不够及其它一些常见的hadoop错误解决办法
  • 求数据库解决方案===求数据库解决方案
  • 多jdk环境下安装多个tomcat冲突解决配置方法
  • MYSQL安装时解决要输入current root password的解决方法
  • linux/centos安装nginx常见错误及解决办法
  • 解决oracle用户连接失败的解决方法
  • 感觉java胜任大型企业级的任务绰绰有余了,可是面对一些小些企业的解决方案听的并不是很多,所以我希望听听各位的看法(如果实际解决过这
  • 今年广东省中等职业技术学校技能大赛的题目(不要小看),网上查了很久,没有解决办法;求高手解决。
  • 急需要解决,请兄弟们帮一把,解决后热心的网友必有重谢(送分)
  • 特急!!议论者有分,解决者追加。关于数据误格式化,在线等待。解决马上结帐
  • 数据同步和复制解决方案 SymmetricDS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3