Java Servlet中的UTF-8在部署到Azure网站时不起作用

时间:2014-12-10 12:10:20

标签: java tomcat servlets azure azure-web-sites

我遇到了字符编码问题。 考虑一下这个简单的片段:

    @Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    req.setCharacterEncoding("UTF-8");
    resp.setCharacterEncoding("UTF-8");
    resp.getWriter().println(req.getParameter("test"));
    resp.getWriter().println(Charset.defaultCharset());
}

当我发出http put请求(使用chrome的邮递员应用程序)时,localhost tomcat上的一切都很好: 测试参数:żłąźć

结果:

żłąźć 窗口-1250

但是当我将这个servlet部署到azure网站tomcat时,以下测试出错了:

结果:

żÅÄÅºÄ 窗口1252

我该如何解决?

1 个答案:

答案 0 :(得分:0)

好的,我找到了。我需要更改server.xml文件(放在apache-tomcat-7.0.52 / conf中)并添加" URIEncoding =" UTF-8"连接器:

    <Connector port="${port.http}" protocol="HTTP/1.1" address="127.0.0.1"
           connectionTimeout="20000"
           redirectPort="8443" 
           URIEncoding="UTF-8" />