myeclipse,eclipse控制台输出乱码问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了myeclipse,eclipse控制台输出乱码问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2261字,纯文字阅读大概需要4分钟。
内容图文
首先我描述一下问题,我在做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.chat; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import 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 publicvoid 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 publicvoid run() { try { DatagramSocket ds = new DatagramSocket(9999); System.out.println(System.getProperty("file.encoding")); while(true){ byte[] buf = newbyte[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(); } } }
如果有什么问题,需要大家指正!
当你的野心撑不起你的梦想时,请静下心来学习!
当你的经济撑不起你的欲望时,请低下头来默默地工作!
原文:http://www.cnblogs.com/lixiaochao/p/5896164.html
内容总结
以上是互联网集市为您收集整理的myeclipse,eclipse控制台输出乱码问题全部内容,希望文章能够帮你解决myeclipse,eclipse控制台输出乱码问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。