用struts+hibernate+sqlserver2000时,往数据库添加带有中文记录时出现乱码

如题
我的JSP页面采用的是UTF-8字符集,往数据库添加数据的时候,是乱码,麻烦各位帮忙解决下

2个回答

加个过滤器就可以了 呵呵
package com.mars.struts.filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class Filter implements javax.servlet.Filter {

public void destroy() {
// TODO Auto-generated method stub

}

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

public void init(FilterConfig arg0) throws ServletException {
System.out.println("filter--------init?");

}

}

在WEB.XML中写

filter
com.mars.struts.filter.Filter


filter
/*

该了之后就好了 ,如果不行 你看看你的工程是不是UTF-8的

乱码解决:UTF-8版
A.项目工程编码UTF-8;(MyEclipse默认是OS的编码)
B.服务器编码,(Tomcat默认是ISO-8859-1,在Connector里加上URIEncoding="UTF-8");
C:过滤器,如采用Spring可配置其自带的Filter,或者采用楼上自己写,注意Filter顺序;
D:所有jsp页面:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

D:以上4点做好后,POST方法乱码可解决,GET方法传递中文还是有问题,
最常用;java.net.URLEncoder.encode("中文", "UTF-8")后再提交;
PS:2000数据库用JTDS驱动貌似比自带的好; :D good luck!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问