0
点赞
收藏
分享

微信扫一扫

jsp+mysql 中文乱码解决


1、mysql中的my.ini文件配置字符集

位置

[mysql]
default-character-set=gbk 或者 utf-8

[mysqld]
default-character-set=gbk 或者 utf-8

这时,新建数据库表的字段的字符集属性应与配置文件中的一致。

 

2、java连接字符串

 

instance = new BasicDataSource();
instance.setDriverClassName(
"com.mysql.jdbc.Driver");
instance.setUrl(
"jdbc:mysql://localhost/fweb?useUnicode=true&characterEncoding=GBK");
instance.setUsername("root");
instance.setPassword("root");

 

蓝字部分为重点

 

3、加过滤器

java文件:

package com;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;



public class CharSetFilter implements Filter
{
public void destroy() { }

public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
{
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}

public void init(FilterConfig filterConfig) throws ServletException
{

}
}

web.xml配置:

<filter>
<filter-name>SetCharEncoding</filter-name>
<filter-class>com.CharSetFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SetCharEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

过滤器是从网上找的资料,其中:request.setCharacterEncoding("utf-8");  原始为“GBK”,结果还是乱码,后改为"gbk",还是乱码,后改为“utf-8”,才可正常向数据库提交中文。

 

 如果以上做法还是乱码,则需将form表单的get改为post。

举报

相关推荐

0 条评论