您的位置:首页 > 数据库 > MySQL

jsp+mysql 中文乱码解决

2010-06-19 10:17 134 查看
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: