数据保存到数据库中显示为“?”的解决办法
- 一、检查工作区是否为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之上