我正在尝试在我的应用程序中显示unicode字符(中文).jsp部分工作正常,并且通过将字符集设置为UTF-8没有问题。但是在Java代码中,不显示Unicode字符。我试过通过将请求设置为utf-8
request.setCharacterEncoding("UTF-8");
最后,我将获得相同的内容并插入到表中。数据库已配置为支持unicode。
我做错了什么。对解决方案的建议或是否有更好的方法。
由于
答案 0 :(得分:0)
尝试在应用程序中实现Filter以进行字符编码:
public class CharacterEncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig)
throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
servletRequest.setCharacterEncoding("UTF-8");
servletResponse.setContentType("text/html; charset=UTF-8");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
如果您使用的是tomcat,请确保您的连接器元素具有URIEncoding属性,该属性的值为UTF-8。
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443"/>
还要确保在每个JSP页面中指定它:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
希望这有帮助。