【发布时间】:2017-03-24 04:26:16
【问题描述】:
我在我的应用程序中使用 Undertow 作为嵌入式 HTTP 服务器。 URL 编码和查询参数的默认编码为ISO-8859-1。我想使用UTF-8。我在文档中没有找到任何东西。有什么想法吗?
【问题讨论】:
我在我的应用程序中使用 Undertow 作为嵌入式 HTTP 服务器。 URL 编码和查询参数的默认编码为ISO-8859-1。我想使用UTF-8。我在文档中没有找到任何东西。有什么想法吗?
【问题讨论】:
我在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();
【讨论】: