如题,测试JSP代码时在SQL SERVER2000数据库中录入数据时,发现录入的数据全部是乱码,后查询资料解决。
很简单,加上 <%request.setCharacterEncoding("gb2312");%>就OK了。
或者是设置一个Filter
很简单,加上 <%request.setCharacterEncoding("gb2312");%>就OK了。
或者是设置一个Filter
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jdbcbook.pub.filters;
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;
/**
* 设置Tomcat的正确编码格式
* @author Administrator
*/
public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null ;
protected FilterConfig filterConfig = null ;
protected boolean ignore = true ;
// 初始化方法,通过配置的参数设置标识变量
public void init(FilterConfig filterConfig) throws ServletException {
this .filterConfig = filterConfig;
this .encoding = filterConfig.getInitParameter( " encoding " );
String value = filterConfig.getInitParameter( " ignore " );
if (value == null )
this .ignore = false ;
else if (value.equalsIgnoreCase( " false " ))
this .ignore = true ;
else if (value.equalsIgnoreCase( " no " ))
this .ignore = true ;
else
this .ignore = false ;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// 判断是否需要进行编码的设置
if ( ! ignore || (request.getCharacterEncoding() == null ))
{
// 得到配置文件中的编码类型
String encoding = selectEncoding(request);
if (encoding != null )
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
public void destroy() {
this .encoding = null ;
this .filterConfig = null ;
}
// 得到配置的编码类型
protected String selectEncoding(ServletRequest request)
{
return this .encoding;
}
}
在web.xml中进行相应的配置
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jdbcbook.pub.filters;
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;
/**
* 设置Tomcat的正确编码格式
* @author Administrator
*/
public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null ;
protected FilterConfig filterConfig = null ;
protected boolean ignore = true ;
// 初始化方法,通过配置的参数设置标识变量
public void init(FilterConfig filterConfig) throws ServletException {
this .filterConfig = filterConfig;
this .encoding = filterConfig.getInitParameter( " encoding " );
String value = filterConfig.getInitParameter( " ignore " );
if (value == null )
this .ignore = false ;
else if (value.equalsIgnoreCase( " false " ))
this .ignore = true ;
else if (value.equalsIgnoreCase( " no " ))
this .ignore = true ;
else
this .ignore = false ;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// 判断是否需要进行编码的设置
if ( ! ignore || (request.getCharacterEncoding() == null ))
{
// 得到配置文件中的编码类型
String encoding = selectEncoding(request);
if (encoding != null )
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
public void destroy() {
this .encoding = null ;
this .filterConfig = null ;
}
// 得到配置的编码类型
protected String selectEncoding(ServletRequest request)
{
return this .encoding;
}
}
<
filter
>
< filter-name > Set Character Encoding </ filter-name >
< filter-class > jdbcbook.pub.filters.SetCharacterEncodingFilter </ filter-class >
< init-param >
< param-name > encoding </ param-name >
< param-value > GBK </ param-value >
</ init-param >
</ filter >
< filter-mapping >
< filter-name > Set Character Encoding </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
< filter-name > Set Character Encoding </ filter-name >
< filter-class > jdbcbook.pub.filters.SetCharacterEncodingFilter </ filter-class >
< init-param >
< param-name > encoding </ param-name >
< param-value > GBK </ param-value >
</ init-param >
</ filter >
< filter-mapping >
< filter-name > Set Character Encoding </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >