Mysql 中文乱码解决方法

解决 Mysql 中文乱码问题:


1

(1)修改jdbc-driver的链接url,增加:
"&useUnicode=true&characterEncoding=utf8",

(2)然后编辑my.ini,在[mysqld]中增加:
default-character-set=utf8

(3)如果是jsp要声明:
     contentType="text/html;charset=gb2312"

2

使用过滤器


在web.xml中设置过滤器



3

针对tomcat4 + mysql4可以使用如下方法 
mysql默认的字符集是latin1,java中对应的就是ISO-8859-1字符集,所以存入数据时转换为ISO-8859-1,取出时再由ISO-8859-1转换为GBK就OK了。

[代码]
import java.io.UnsupportedEncodingException;
//解决中文问题
public class EncodingUtil {
    //从数据库取出用
    public static String latin1ToGBK(String str) {
try {
String temp_p = str;
byte[] temp_t = temp_p.getBytes("ISO-8859-1");
String temp = new String(temp_t,"GBK");
return temp;
} catch (UnsupportedEncodingException ex) {
System.out.println(ex);
return "";
}
     }
     //存入中文数据时用
     public static String GBKToLatin1(String str) {
if(str==null) {
str="";
} else{
try {
str=new String(str.getBytes("GBK"),"ISO-8859-1");
} catch(Exception ex){
ex.printStackTrace();
}
}
return str;
     }
}
4
在tomcat conf  里面的web.xml里面更改:

  <filter>  
         <filter-name>UTFEncoding</filter-name>  
         <filter-class>com.founder.chenph.Util.EncodingFilter_UTF8</filter-class>  
         <init-param>  
              <param-name>encoding</param-name>  
              <param-value>UTF-8</param-value>  
          </init-param>  
         </filter>  
         <filter-mapping>  
              <filter-name>UTFEncoding</filter-name>  
              <url-pattern>*.jsp</url-pattern>  
         </filter-mapping>  
         <filter-mapping>  
              <filter-name>UTFEncoding</filter-name>  
              <url-pattern>*.do</url-pattern>  
          </filter-mapping>
  </filter>

你可能感兴趣的:(tomcat,mysql,Web,jsp,jdbc)