1

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

request.setCharacterEncoding("UTF-8");

最后我将得到相同的结果并插入到表中。数据库已经配置为支持 unicode。

我做错了什么。请就解决方案提出建议,或者有更好的方法来做到这一点。

谢谢

4

1 回答 1

0

尝试在您的应用程序中实现过滤器以进行字符编码:

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,请确保您的连接器元素具有值为 UTF-8 的 URIEncoding 属性。

<Connector port="8080" 
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443"/>

还要确保在每个 JSP 页面中都指定了这一点:

<%@page contentType="text/html" pageEncoding="UTF-8"%>

希望这可以帮助。

于 2012-06-04T11:45:25.623 回答