awt swing 命令行中文乱码
用javac -encoding GBK name.java
  java -Dencoding=GBK name
只能解决部分的程序的问题,还有的系统的默认编码是cp1251,球高手指导啊 

解决方案 »

  1.   

    有更个具体的信息么?编程环境是eclipse?设置的代码编码是什么?出现乱码问题的源代码能上来么?我们编译一下试试
      

  2.   

    import java.awt.event.*;
    import java.io.*;
    import java.net.*;import javax.swing.*;
    import javax.swing.event.*;public class ChatAWT extends javax.swing.JFrame {
    private JLabel jLabel1;
    private JLabel jLabel2;
    private JLabel jLabel3;
    private JButton jButton1;
    private JButton jButton2;
    private JButton jButton3;
    public JTextArea jTextArea2;
    public JTextArea jTextArea1;
    private JScrollPane jScrollPane1;
    private JScrollPane jScrollPane2;
    private Socket sk;  //Socket对象
    private String Text=""; //接收聊天记录
    private void initGUI() {
    try {
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      getContentPane().setLayout(null);
      getContentPane().setBackground(new java.awt.Color(83,169,255));jLabel1 = new JLabel();
    getContentPane().add(jLabel1);
    jLabel1.setText("我的聊天室");
    jLabel1.setBounds(118, 12, 106, 26);
    jLabel1.setFont(new java.awt.Font("新宋体",1,20));
    jScrollPane1 = new JScrollPane();
    getContentPane().add(jScrollPane1, "Center");
    jScrollPane1.setBounds(45, 44, 262, 149);jTextArea1 = new JTextArea();
    jScrollPane1.setViewportView(jTextArea1);
    jTextArea1.setBackground(new java.awt.Color(191,251,214));
    jTextArea1.setEditable(false);jScrollPane2 = new JScrollPane();
    getContentPane().add(jScrollPane2, "Center");
    jScrollPane2.setBounds(45, 215, 262, 109);jTextArea2 = new JTextArea();
    jScrollPane2.setViewportView(jTextArea2);jButton1 = new JButton();
    getContentPane().add(jButton1);
    jButton1.setText("发送");
    jButton1.setBounds(245, 330, 62, 24);
    jButton1.addActionListener(new Chat_Send(this));
    jButton2 = new JButton();
    getContentPane().add(jButton2);
    jButton2.setText("清屏");
    jButton2.setBounds(351, 169, 92, 24);
    jButton2.addActionListener(new Chat_eliminate(this));
    jButton3 = new JButton();
    getContentPane().add(jButton3);
    jButton3.setText("聊天记录");
    jButton3.setBounds(351, 206, 92, 24);
    jLabel2 = new JLabel();
    getContentPane().add(jLabel2);
    jLabel2.setText("客户B");
    jLabel2.setBounds(339, 62, 112, 73);
    jLabel2.setFont(new java.awt.Font("华文行楷",1,36));
    jLabel3 = new JLabel();
    getContentPane().add(jLabel3);
    jLabel3.setText("客户A");
    jLabel3.setFont(new java.awt.Font("华文行楷",1,36));
    jLabel3.setBounds(339, 257, 112, 73);pack();
    this.setSize(500, 400);
    this.setLocationRelativeTo(null);
    this.setVisible(true);
    } catch (Exception e) {
    e.printStackTrace();
    }
     
     public static void main(String[] args)
    {
      new ChatAWT().initGUI();
     }}
      

  3.   

    没这个两类的代码,编译不了
    Chat_Send
    Chat_eliminate
      

  4.   

    编译和运行都没有问题,没有乱码。下面是我自己补上的代码
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    public class Chat_Send implements ActionListener { public Chat_Send(ChatAWT chatAWT) {
    // TODO Auto-generated constructor stub
    } @Override
    public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub }}import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    public class Chat_eliminate implements ActionListener { public Chat_eliminate(ChatAWT chatAWT) {
    // TODO Auto-generated constructor stub
    } @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub }}
      

  5.   


    package gui1;
    import java.awt.event.*;
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    public class ChatAWT extends javax.swing.JFrame {
    private JLabel jLabel1;
    private JLabel jLabel2;
    private JLabel jLabel3;
    private JButton jButton1;
    private JButton jButton2;
    private JButton jButton3;
    public JTextArea jTextArea2;
    public JTextArea jTextArea1;
    private JScrollPane jScrollPane1;
    private JScrollPane jScrollPane2;
    private  Socket sk;  //Socket对象
    private String Text=""; //接收聊天记录
    private  BufferedReader bs;
    private  PrintWriter pw;
    public ChatAWT(Socket sk) throws IOException
    {
      this.sk=sk;
     // pw=new PrintWriter(new OutputStreamWriter(sk.getOutputStream()));
    }public  void initGUI(){
    try {
     
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      getContentPane().setLayout(null);
      getContentPane().setBackground(new java.awt.Color(83,169,255));jLabel1 = new JLabel();
    getContentPane().add(jLabel1);
    jLabel1.setText("我的聊天室");
    jLabel1.setBounds(118, 12, 106, 26);
    jLabel1.setFont(new java.awt.Font("新宋体",1,20));
    jScrollPane1 = new JScrollPane();
    getContentPane().add(jScrollPane1, "Center");
    jScrollPane1.setBounds(45, 44, 262, 149);jTextArea1 = new JTextArea();
    jScrollPane1.setViewportView(jTextArea1);
    jTextArea1.setBackground(new java.awt.Color(191,251,214));
    jTextArea1.setEditable(false);jScrollPane2 = new JScrollPane();
    getContentPane().add(jScrollPane2, "Center");
    jScrollPane2.setBounds(45, 215, 262, 109);jTextArea2 = new JTextArea();
    jScrollPane2.setViewportView(jTextArea2);jButton1 = new JButton();
    getContentPane().add(jButton1);
    jButton1.setText("发送");
    jButton1.setBounds(245, 330, 62, 24);
    jButton1.addActionListener(action);
    jButton2 = new JButton();
    getContentPane().add(jButton2);
    jButton2.setText("清屏");
    jButton2.setBounds(351, 169, 92, 24);
    jButton2.addActionListener(action); 
    jButton3 = new JButton();
    getContentPane().add(jButton3);
    jButton3.setText("聊天记录");
    jButton3.setBounds(351, 206, 92, 24);
    jButton3.addActionListener(action);jLabel2 = new JLabel();
    getContentPane().add(jLabel2);
    jLabel2.setText("客户B");
    jLabel2.setBounds(339, 62, 112, 73);
    jLabel2.setFont(new java.awt.Font("华文行楷",1,36));
    jLabel3 = new JLabel();
    getContentPane().add(jLabel3);
    jLabel3.setText("客户A");
    jLabel3.setFont(new java.awt.Font("华文行楷",1,36));
    jLabel3.setBounds(339, 257, 112, 73);pack();
    this.setSize(500, 400);
    this.setLocationRelativeTo(null);
    this.setVisible(true);
    this.setResizable(false);
    } catch (Exception e) {
      e.printStackTrace();}
     
     
    }
     ActionListener action =new ActionListener(){
     public void actionPerformed(ActionEvent e) 
     {
      String string=e.getActionCommand();
      if(string.equals("发送"))
      {
      try {
    // BufferedReader bs=new BufferedReader(new InputStreamReader());
    PrintWriter pw=new PrintWriter(new OutputStreamWriter(sk.getOutputStream()));
    // while((Text=bs.readLine())!=null)
        pw.println(jTextArea2.getText());
        pw.flush();
    } catch (Exception e2) {
    // TODO: handle exception
    e2.printStackTrace();
    }
     
      
      }
      if(string.equals("清屏"))
      {
      jTextArea2.setText("");
      }
      if(string.equals("聊天记录"));  
     }
     
     };
      
    }
    package gui1;import java.io.IOException;
    import java.net.Socket;public class Chat {
         public static void main(String[] args )throws IOException
         {   
           Socket s=new Socket("localhost",30000);
           ChatAWT chatAWT=new ChatAWT(s);
           chatAWT.initGUI();
          }
         
    }
    import java.io.*;
    import java.net.*;
    import java.util.HashSet;
    import java.util.Scanner;
    import java.util.Set;
    //服务端
    public class Server {
    public static void main(String[] args) throws Exception {
    System.out.println("服务器已启动");
    //创建serversocket对象
    ServerSocket ss=new ServerSocket(30000);//进行监听,获得相应的客户端socket对象、
    Socket sk=ss.accept();
    if(sk!=null)
    {
    //读取客户端发来输出流数据
    InputStream in=sk.getInputStream();
    OutputStream out=sk.getOutputStream();
    //把字节流读到缓冲字符流中(new InputStreamReader(in)把字节流转化成字符流)
    BufferedReader reader=new BufferedReader(new InputStreamReader(in));
    String msg="";
    while((msg=reader.readLine())!=null){
    System.out.println("客户端:"+msg);//把得到的信息又返回给客户端
    PrintStream print=new PrintStream(out,true); //会自动刷新和写如换行符'\n'
    print.print("我发出去了((()))");
    System.out.println("我发出去了");
    }
    }
    }
    }