一般来说,java的乱码其实很好解决,乱一般是没有显式指定编码。你这个问题,相信在jsp、servlet或sockect发收数据的时候没有指明接/收的编码在jsp和servlet中可以使用request.setCharacterEncoding(UTF-8)接收而如果你的聊天室直接用的是socket,则用OutputStreamReader/InputStreamReader包Socket的OutputStream或InputStream,两边用相同的编码(GBK),不会不成功的

解决方案 »

  1.   

    则用OutputStreamWriter/InputStreamReader
      

  2.   

    嗯同意 littlecpu(嘿,哥们,你欠我分,快给咯) 的说法,一般只要字符集对于不会出现乱码的
      

  3.   

    解决办法:  
    第一:  
     1:在jsp页面加入:  
    <%@  page  contentType="text/html;  charset=gb2312"  %>  
     2:在servlet里面:  
       public  void  doGet(HttpServletRequest  request,  HttpServletResponse  response)  throws  ServletException,  IOException  {  
           response.setContentType("text/html;  charset=gb2312");//这是重要的  
     
    3:上面的如果在不行就用如下的方法在数据入库前进行调用:  
    public  static  String  UnicodeToChinese(String  s){  
       try{  
             if(s==null  &brvbar;  &brvbar;s.equals(""))  return  "";  
             String  newstring=null;  
             newstring=new  String(s.getBytes("ISO8859_1"),"gb2312");  
             return  newstring;  
           }  
       catch(UnsupportedEncodingException  e)  
       {  
       return  s;  
       }  
       }  
     
    public  static  String  ChineseToUnicode(String  s){  
       try{  
       if(s==null  &brvbar;  &brvbar;s.equals(""))  return  "";  
       String  newstring=null;  
       newstring=new  String(s.getBytes("gb2312"),"ISO8859_1");  
         return  newstring;  
       }  
       catch(UnsupportedEncodingException  e)  
       {  
       return  s;  
     }  
       }