JAVA myEclipse下控制台输入与输出问题

JAVA myEclipse下控制台输入与输出问题,第1张

首先我描述一下问题,我在做udp socket编程(一个聊天的程序)的时候,从控制台中读取中文,然后再向控制台中打印,出现中文乱码的情况。

1、出现乱码最根本的原因就是编码和解码不一致的情况。问题分析,从控制台中读取数据,数据源为控制台,输出为乱码,目标源也为控制台,但是在读取和输出的过程中有可能出现乱码,

最简单的例子就是控制台上的编码为gbk,gbk是两个字节编码的,而utf-8是三个字节。所以会出现乱码问题,

2、解决办法

(1)打开eclipse或myeclipse,点击run-》runconfigurations

如图提示,改成UTF-8,但是这里强调一下,有的eclipse或myeclipse有可能是gbk的形式,不同形式改成不同的编码,多尝试一下。

这里也需要更改一下。

(2)方法二:

打开eclipse.ini文件(在eclipse的安装目录)  添加上这句话 -Dfile.encoding = utf-8,设置系统属性file.encoding为utf-8.

2、附上我做的一个聊天的小程序,把ip到时候可以改成你想聊天的那个人的ip,两边都要运行这段代码。

package com.hzwealth.test.chatimport java.io.BufferedReaderimport java.io.InputStreamReaderimport java.net.DatagramPacketimport java.net.DatagramSocketimport java.net.InetAddress/**

* C&D聊天室

* @author lixiaochao

* */public class UdpChatTest {    public static void main(String[] args) {        new Thread(new UdpClientThread()).start()       new Thread(new UdpServerThread()).start()

   }

}/**

* 发送端

* @author lixiaochao

* */class UdpServerThread implements Runnable{

   @Override    public void run() {        try {

           DatagramSocket ds = new DatagramSocket()

           BufferedReader reader = new BufferedReader(new InputStreamReader(System.in,"UTF-8"))

           

           String line = null           while((line = reader.readLine())!= null){

//这里注意,我们需要写上你对话人的ip地址。

               InetAddress address = InetAddress.getByName("你的对话人的ip地址")

               DatagramPacket dp = new DatagramPacket(line.getBytes(), line.getBytes().length, address, 9999)

               ds.send(dp)

               System.out.print("我说:"+line+"\n\r")               if("~over".equals(line)){

                   System.out.println("发送者退出")                   break

               }

           }

           reader.close()

           ds.close()

       } catch (Exception e) {

           e.printStackTrace()

       }

   }

   

}/**

* 接收端

* @author lixiaochao

* */class UdpClientThread implements Runnable{

   @Override    public void run() {        try {

           DatagramSocket ds = new DatagramSocket(9999)

           System.out.println(System.getProperty("file.encoding"))           while(true){                byte[] buf = new byte[1024]

               DatagramPacket dp = new DatagramPacket(buf, buf.length)

               ds.receive(dp)

               InetAddress address= dp.getAddress()

               String msg = new String(buf, 0, buf.length,"GBK")

               System.out.println(address+"说:"+msg)               if("~over".equals(msg)){                    break

               }

           }

           ds.close()

       } catch (Exception e) {

           e.printStackTrace()

           

       }

   }

   

}

您是想问如何eclipse导入微信小程序项目是吧,直接在myeclipse中检出小程序项目即可。

如果是使用svn插件,可以复制其他项目的文件,打开修改项目名称,在myeclipse中就可以导入微信小程序项目即可。

MyEclips是在加上自己的插件开发而成的功能强大的企业级集成开发软件,主要用于移动应用的开发。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12203851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存