myeclipse,eclipse控制台输出乱码问题

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

        }
    }

}

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

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

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

时间: 2024-08-27 14:17:28

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

解决Myeclipse/eclipse控制台输出乱码的问题

这段时间一直在做flex项目,每次编译的时候Myeclipse控制台(console)的输出都是乱码,就算编译报错了也是各种乱码.实在是不方便啊,要看个错都得靠连蒙带猜的..虽然猜BUG的能力日渐提高,但是这总不是一个办法呀.还是得解决乱码问题.首先先看看乱码..这不是一般人能看得懂的... 看到了吧,每次看到乱码都一阵头痛..这是要逆天了..于是下决心要解决乱码的问题, 然后我在网上找啊找啊,尝试了各种办法都不行.不过最后还是找到了一个可以解决乱码问题的方法. 1. 首先对着要运行的项目右键,

eclipse运行 Maven Test命令时控制台输出乱码的解决办法

在Maven的pom.xml文件中增加: <properties>      <argLine>-Dfile.encoding=UTF-8</argLine> </properties> 今天突然遇到这个问题了,上网搜了一下,答案一大堆,还是这个最好!记录一下! eclipse运行 Maven Test命令时控制台输出乱码的解决办法,布布扣,bubuko.com

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

1.0  Maven 执行Javadoc时控制台输出乱码问题 问题描述 最近项目中使用maven-javadoc-plugin生成javadoc时,myEclipse控制台乱码. 插件配置 问题分析 检查maven输出时采用的编码格式 很显然maven默认输出采用GBK编码 myEclipse控制台输出编码,默认采用的是工作空间的编码格式. 改为 结果如下: 来自:http://www.cnblogs.com/albert-sun/archive/2013/03/21/2973993.html

jenkins控制台输出乱码

根据以往写代码的经验,jenkins控制台输出乱码有可能是编码导致的,问了一下度娘,果然如此,解决办法如下:修改下jenkins的配置文件,设置字符编码为:UTF-8即可,打开jenkins的安装目录,找到jenkins.xml文件,在<arguments>标签处添加红色字体,即定义编码为utf-8<arguments>-Xrs -Xmx512m -Dfile.encoding=utf-8 -Dhudson.lifecycle=hudson.lifecycle.WindowsSer

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

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/AServlet" method="post"> 用户名:<input type=&qu

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

解决Tomcat控制台输出乱码问题 打开Edit Configuration,在VM options一栏输入 -Dfile.encoding=UTF-8 然后到IDEA的bin目录找到 idea64.exe.vmoptions 同样添加到文末 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align:

Log4j控制台输出乱码问题

首先,到 log4j.properties 查看编码格式: 然后,看项目的运行配置: Encoding: OK,问题解决. 总结: **乱码,自然是编码不匹配.怎么样就匹配了呢? log4j用utf-8输入,你文件是不是utf-8接受的呢?检查一下,果然不是,改成utf-8编码,解决. 你可能要问了,那控制台的匹配在哪里?Eclipse控制台也有是编码的,而且,不仅仅是有,你还可以为每个执行的程序,设置独立的编码.改成和log4j使用的编码格式一致,自然就没有乱码喽!**

[Java Web]Mac OSX中MyEclipse的Console输出乱码的问题

一.问题说明 MAC系统,Myeclipse10那版(你懂的) 用Myeclipse自带的Tomcat6去在本机部署调试时,控制台中文乱码 之前采用新建Tomcat 7(系统Tomcat)暂时解决了,但是一直不明白为什么. 二.问题解决 说来说去,肯定是编码的问题,但是到底哪里加编码就是问题核心所在了 我无意中对比了下新建的Tomcat 7 server和自带的 Tomcat6,发现区别就在这里 看下对比 三.知识点 3.1 Mac下Myeclipse控制台中文乱码解决 版权声明:本文为博主原创

vs2017中c#项目控制台输出乱码

最近的实验在做c#.net的项目,出现了一个很烦的问题.中文在控制台输出竟然乱码,百度好多解决方案,更新vs,修改注册表什么的,都没用,还有添加高级选项那种,试过还是原来的样子,上图: ,结果苦苦搜寻,终于找到对应的办法.在输出之前加一行代码:Console.OutputEncoding = System.Text.Encoding.UTF8; 然后就差不多可以了.大功告成,上图: 原文地址:https://www.cnblogs.com/phking/p/10645153.html