使用servlet往数据库保存内容时,出现的都时乱码,在页面得到的内容可以正常在后台输出但是保存到数据库就时乱码了。这是怎么的问题啊?编码方式都时utf-8,郁闷中

解决方案 »

  1.   

    数据库 编码方式也是utf-8?
      

  2.   

    接受数据的时候没有处理乱码...
    response.setContentType("text/html;charset=GBK");
    request.setCharacterEncoding("GBK");如果还不行 那就写个过滤器
    public class Encoding implements Filter { public void destroy() {
    // TODO 自动生成方法存根 } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {


    //request.setCharacterEncoding("GBK");
    chain.doFilter(request, response);

    } public void init(FilterConfig arg0) throws ServletException {
    // TODO 自动生成方法存根 }}web.xml
    配置
    <filter>
        <filter-name>Encoding</filter-name>
        <filter-class>com.addressbook.servlet.Encoding</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>Encoding</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      

  3.   

    补充:刚不小心发错了.
    其中
    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    //request.setCharacterEncoding("GBK");
    chain.doFilter(request, response);}
    解释://request.setCharacterEncoding("GBK"); 这句话是最主要的  刚不小心注释了应为  :
    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    request.setCharacterEncoding("GBK");    //处理乱码chain.doFilter(request, response);      //通过}

      

  4.   

    一种方法是使用过滤器,让编码统一;另一种是该服务器下CONFIG文件夹中的server.xml中的连接器<Connector>中增加属性 URIEncoding="utf-8")