解决数据库录入中文数据乱码问题

如题,测试JSP代码时在SQL SERVER2000数据库中录入数据时,发现录入的数据全部是乱码,后查询资料解决。
很简单,加上  <%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中进行相应的配置
     < 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 >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值