在网上查找了好多资料都是说将驱动那里String url ="jdbc:mysql://localhost/db?user=root&password=&useUnicode=true&characterEncoding=gb2312" ;gb2312改为8859—1。但这样依然解决不了,有人说在数据插入时用getBytes("ISO8859_1")去将gb2312转换。但也没有用。其实解决方法就是将<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>这里的gb2312改为8859_1然后驱动那里也用8859_1这样的话根本不用转换来转换去,只是在页面显示的时候用getBytes("ISO8859_1")转换一下显示出来!
这段函数也就不用了!
<%!  
public  String  getStr(String  str){  
try{String  temp_p=str;  
byte[]  temp_t=temp_p.getBytes("ISO8859-1");  
String  temp=new  String(temp_t);  
return  temp;  
}  
catch(Exception  e){  }  
return  "NULL";  
}  
%>
中文也不用再用getBytes(“”)转换;
如果大家有什么建议尽管提出,小弟搞了2天才搞定。知识太浅薄了!

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>这里的gb2312改为8859_1然后驱动那里也用8859_1这样的话根本不用转换来转换去
    -----------------------------------------------
                                        这样的话原来的页面会不会有可能出现中文乱码的问题这个值得注意。up
      

  2.   

    "useUnicode=true&characterEncoding=gb2312"不是每一个驱动都有这个函数吧!
      

  3.   

    那个页面就用来处理数据的插入!
    大部分的驱动都有"useUnicode=true&characterEncoding=gb2312"这个的啦!