请尝试以下方法 逐一试一下~~~~
在你的数据库连接url后面加上 characterEncoding=utf-8
例如
jdbc.jdbcUrl:jdbc:mysql:///MyMavenShoppDemoTwo?characterEncoding=utf8
在你接收参数时使用request域获得参数进行强制转码
String id= new String(request.getParameter("cardid").getBytes("iso-8859-1"), "utf-8");
如果你的接收参数是servlet就在里面写入
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("text/html;charset=utf-8");
也可以写一个过滤器
例如:
新建一个类实现Filter接口,实现方法 重写
public class FilterEncoding implements Filter {
// 先定义一个全局变量
String encoding = null;
@Override
public void destroy() {
// 终结 encoding 节约资源
encoding = null;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (encoding != null) {
HttpServletRequest rt=(HttpServletRequest)request;
HttpServletResponse re=(HttpServletResponse)response;
rt.setCharacterEncoding(encoding);
re.setContentType("text/html;charset=" + encoding);
chain.doFilter(request, response);
}
}
@Override
public void init(FilterConfig config) throws ServletException {
// 从 web.xml获得初始化参数
encoding = config.getInitParameter("encoding");
}
}
在web.xml中进行配置
<!-- 过滤器配置 -->
<filter>
<filter-name>FilterEncoding</filter-name>
<filter-class>com.itheima.web.filter.FilterEncoding</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FilterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>