在java应用程序中使用中文字符

时间:2012-06-04 10:39:05

标签: java

我正在尝试在我的应用程序中显示unicode字符(中文).jsp部分工作正常,并且通过将字符集设置为UTF-8没有问题。但是在Java代码中,不显示Unicode字符。我试过通过将请求设置为utf-8

request.setCharacterEncoding("UTF-8");

最后,我将获得相同的内容并插入到表中。数据库已配置为支持unicode。

我做错了什么。对解决方案的建议或是否有更好的方法。

由于

1 个答案:

答案 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"%>

希望这有帮助。

相关问题