数据保存到数据库中显示为“?”或者乱码的解决办法

数据保存到数据库中显示为“?”的解决办法

  • 一、检查工作区是否为utf-8
  • 二、检查数据库编码是否设置为utf-8
  • 三、检查jsp是否设置为utf-8
  • 四、是否写过滤器

基本上就这四种情况,下面做详细解决步骤:

  • 一、检查工作区是否为utf-8

点击->window->Preferences->General->workspce

这里写图片描述


  • 二、检查数据库编码是否设置为utf-8

    我用的的数据库是mysql


这里写图片描述
  • 三、检查jsp是否设置为utf-8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  • 四、是否写过滤器
package com.yuming.crm.web.filter;

import java.io.IOException;

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

public class EncodingFilter implements Filter{

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        chain.doFilter(request, response);
        System.out.println("过滤成功");
    }

}

将写好的过滤器配置到config.xml上面

 <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.yuming.crm.web.filter.EncodingFilter</filter-class>
   </filter>
   <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>*.do</url-pattern>
   </filter-mapping>

filter要写在servlet之上

猜你喜欢

转载自blog.csdn.net/weixin_38938129/article/details/82658156