参考,http://www.csdn.net/expert/topic/1064/1064137.xml?temp=.8647425我刚刚发表的,要是有什么还不明白,请告诉我~

解决方案 »

  1.   

    试试下面的方法,
    如果解决不了,就把代码帖出来。
    解决办法:
    第一:
    在jsp页面加入:
    <%@ page contentType="text/html; charset=gb2312" %>
    或者在servlet里面
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=gb2312");
    上面的如果在不行就用如下的方法在数据入库前进行调用:
    public static String UnicodeToChinese(String s){
      try{
         if(s==null||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||s.equals("")) return "";
      String newstring=null;
      newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
       return newstring;
      }
      catch(UnsupportedEncodingException e)
      {
      return s;
     }
      }
      

  2.   

    你在socket传输数据的时候都用的iso8859_1吧?
    显示聊天内容的时候是用web呢还是applet?
    如果是jsp/servlet输出的web,那么需要先把iso8859_1的内容转成gbk或者gb2312给浏览器才行。
    如上贴
    newstring = new String(s.getBytes("ISO8859_1"),"gb2312");
    至于content-type最好也设置一下。
    如果是applet用awt的话,还需要选择合适的字体。
      

  3.   

    to elapsed(Maverick) :
    我认为你的方法欠妥,回复了你的帖子,请指教 :)
    to wjmmml(笑着悲伤):
    我同意你的方法,不过你的那篇散分的文章我回复了,纠正了对Unicode的理解,多多交流 :)