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