设置嵌入式Undertow的默认编码

时间:2016-11-10 08:02:57

标签: java undertow

我在我的应用中使用Undertow嵌入式HTTP服务器。对于URL编码和查询参数,默认编码为ISO-8859-1。我想使用UTF-8。我在文档中没有找到任何内容。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我在DeploynentInfo上设置了defaultEncoding。它帮助了我。

DeploymentInfo servletBuilder =
    Servlets
        .deployment()
        .setClassLoader(Main.class.getClassLoader())
        .setDeploymentName("myapp").setContextPath("/myapp")
        .setDefaultEncoding("UTF-8");

DeploymentManager manager = Servlets.defaultContainer().addDeployment(servletBuilder);
manager.deploy();

Undertow server = Undertow.builder()
    .addHttpListener(9090, "localhost")
    .setHandler(manager.start())
    .build();

server.start();

对于当前版本的Undertow,默认编码为UTF-8。此外,对于非部署模式,您可以使用选项更改默认编码:

Undertow.builder()
       .setHandler(...)
       .setServerOption(UndertowOptions.URL_CHARSET, "UTF8")
       .addHttpListener(port, host)
       .build()
       .start();