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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值