首先我描述一下问题,我在做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
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(); }
} }

  如果有什么问题,需要大家指正!

  当你的野心撑不起你的梦想时,请静下心来学习!

  当你的经济撑不起你的欲望时,请低下头来默默地工作!

myeclipse,eclipse控制台输出乱码问题的更多相关文章

  1. Eclipse中执行Maven命令时控制台输出乱码

    Maven 默认编码为 GBK: 在 Eclipse 控制台输出乱码: 解决方法:将以下代码添加到 pom.xml 的 <project> 节点下: <project> …… ...

  2. Maven 执行Javadoc时控制台输出乱码问题

    1.0  Maven 执行Javadoc时控制台输出乱码问题 问题描述 最近项目中使用maven-javadoc-plugin生成javadoc时,myEclipse控制台乱码. 插件配置 问题分析 ...

  3. Web运行控制台输出乱码解决总结

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Spring Boot2解决idea console 控制台输出乱码

    Idea默认配置是采用GBK, 而项目工程文件采用的是UTF-8. 编码不一致,导致idea Console控制台输出乱码. 网上的解决方案,大都是直接修改Settings=>Editor=&g ...

  5. 解决Tomcat控制台输出乱码问题

    解决Tomcat控制台输出乱码问题 打开Edit Configuration,在VM options一栏输入 -Dfile.encoding=UTF-8 然后到IDEA的bin目录找到 idea64. ...

  6. Eclipse设置之:代码注释/server 控制台输出乱码解决

    1           Eclipse设置 Configure clean up style The location is here: And the configuration should fo ...

  7. Eclipse控制台输出中文乱码问题的解决

    啥都不说,上图: 1.console控制台打印乱码 2.右键: Run As --> Run Configurations 3.找到common项,在“Encoding”栏,看到当前用的是默认“ ...

  8. eclipse控制台中文乱码解决

    Eclipse控制台中的中文输出乱码问题 博客分类: MySql EclipseTomcatXMLWeb  今天做S2SH集成的例子,所有该设置的地方都设置成了UTF-8,包括tomcat的配置文件s ...

  9. mac中的myeclipse的控制台中文乱码问题解决办法

    之前写java用到控制台的主要是字符和数字,中文输入貌似真的还没用过,所以就遇到了一个悲剧的老问题,估计每个程序员都会遇到——中文乱码. 用的是MyEclipse开发环境,Window->Gen ...

随机推荐

  1. 情人节那点事,Power BI告诉你

    情人节伴随着元宵节刚刚过去,Power BI团队就送给我们一份大礼,利用来自NRF(national retail foundation)和Bing搜索的数据,在Power BI中帮助我们发现在美国那 ...

  2. java web.xml配置详解

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  3. 简单的SQL联表更新

    UPDATE dbo.bankinfo1 SET bankinfo1.BankName=BankInfo.BankName FROM BankInfo where bankinfo1.banknumb ...

  4. codeforces#271 (Div. 2)预处理

    B. Worms time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  5. Jquery和其他库($的好处)

    ---很多时候我们的页面 会使用很多的 javascript库 ---而这个时候  jQuery这款重点在满足社区用户的需求的工具  做好了让jQuery在页面上与其他库和平共处的准备 凭借名副其实的 ...

  6. PHP-Redis扩展使用手册(三)

    /* 序列化key对应的value,如果key不存在则返回false * @param key * @return 序列化后的val或者false */ $redis->set('key_1', ...

  7. Multiple annotations found at this line

    Multiple annotations found at this line 在使用MyEclipse的时候,通过MVN导入项目时候,webapp下面的JSP页面报了如下的错误: 这种情况通常的原因 ...

  8. Linux中总线设备驱动模型及平台设备驱动实例

    本文将简要地介绍Linux总线设备驱动模型及其实现方式,并不会过多地涉及其在内核中的具体实现,最后,本文将会以平台总线为例介绍设备和驱动程序的实现过程. 目录: 一.总线设备驱动模型总体介绍及其实现方 ...

  9. 基于Spring + Spring MVC + Mybatis + shiro 高性能web构建

    一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.AngularJS,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详 ...

  10. Python In Action:三、稍稍扩展

    #!/usr/bin/env python """Spare.py is a starting point for simple wxPython programs.&q ...