常见中文问题的解决方法: 1.JDK的中文问题: 
不要使用DataInputStream与DataOutputStream,而要用 BufferedReader与BufferedWriter。2.Visual Age3.0的中文问题: 很简单。在Window-option菜单中给List、Source的选项 设置支持中文的字体就可以了。 3.数据库中文问题: Access + Javaodbc驱动程序不能支持中文(用getByte()也 不行),目前我还没有找到解决方法。 MySQl + Javaodbc驱动程序也有中文问题,目前我还没有找 到解决方法。 MySQl + mm.mysql.jdbc没有任何中文问题,但是建立数据 表,有中文输入的域,最好设成bianry,否则因为MySQL的 varchar、char、text等属性的域在查询时是不分大小写时, 这样中文查询时会出现问题。4.Jsp的中文问题。 setPropotery时的中文问题,使用URLDecoder.decode()进行 转换即可。 

解决方案 »

  1.   

    在相应的jsp页面开始加上<%@ page contentType="text/html; charset=GB2312" %>
    <%request.setCharacterEncoding("gb2312");%>
      

  2.   

    本地是windows环境,系统自带中文字符集,所以能正常显示;
    服务器如果是Linux或其他自身并不支持汉字的系统,需要在程序
    中进行汉字转换。下面是一个转换函数:<!-- 转换为中文简体 -->
    <%!
      public String getStr(String str){
       try{
             String temp_p=str;
             byte[] temp_t=temp_p.getBytes("iso8859-1");
             String temp=new String(temp_t,"gb2312"); 
         }
         catch(Exception e){
             //--system.out.print("can not change charset");
         }
             return temp;
      }
    %><!-- 调用 -->
    <%
     String s = getStr(request.getParameter("name"));
     out.println(s)   //显示汉字
    %>
      

  3.   

    首先我可以肯定一定加了charset语句,其次我可以肯定你的本地机是中文操作系统,服务器不是中文的。解决方法:将“charset=...”去掉即可,当然了,这样的话,在你本地机上就是“??”了。
      

  4.   

    中文问题解决方法就那么几种,楼上的几位兄弟也都提到了
    我认为,jsp中文问题,不同的服务器解决的方法不一样,同一种服务器
    版本不一样,解决的方法也可能不一样
    所以你就需要慢慢试了。
    很容易解决的
      

  5.   

    修改本地设置为"en_US"就不需要转码了.
      

  6.   

    其实,如果是中文操作系统,也会不同的。曾经在一台win2000 advance server上运行就会出错,但是打上sp2后就正常了,但有时即使打上sp3也没用。
    关于汉字出错的问题,可能根本原因还是没找到。
      

  7.   

    本地和服务器的数据库类型不同,JSP中的编码转换也不同。
    <%@ page contentType="text/html; charset=GB2312" %>
    可以尝试把gb2312变成iso8859_1或把ISO8859_1变成gb2312.
    这样可以解决显示问题。
    当把数据写到数据库时可以用
    String un=new String(request.getParameter("username").getBytes("ISO-8859-1"),"gb2312");
      

  8.   

    解决的方法有很多种,关键是你要理解出现问题的原因。以我的看法,从发展的角度看,将charset设回到iso8859_1(以适应服务器os的charset)是不可取的(虽然有时会奏效),用sunlinux的办法是最正当的,但是有一个补充和两个前提:
    一个补充是,最好用GB18030编码(J2SDK 1.4支持),否则碰到“朱镕基”的“镕”将无法显示。J2SDK 1.3可以用GBK顶一下。否则就必须把gb2312之外的字符换成\uXXXX的表达方式(手动转码)。
    两个前提是:
    1. 只有Servlet2.3/JSP 1.2开始(Tomcat 4+)支持setCharacterEncoding()方法。
    2. 在JSP里调用request.setCharacterEncoding()对当前JSP的参数是无效的!具体原因我在水木清华BBS的Java版写过一篇文章分析。必须在Servlet里使用,或者从当前JSP forward到下一个JSP才起作用。最后,最佳的方法是写一个filter来处理(在filter里调用setCharacterEncoding方法),Tomcat的例子里有encoding filter的,可以参考。