为嵌入的 Undertow 设置默认编码
Posted
技术标签:
【中文标题】为嵌入的 Undertow 设置默认编码【英文标题】:Set default encoding for Undertow embedded 【发布时间】:2017-03-24 04:26:16 【问题描述】:我在我的应用程序中使用 Undertow 作为嵌入式 HTTP 服务器。 URL 编码和查询参数的默认编码为ISO-8859-1
。我想使用UTF-8
。我在文档中没有找到任何东西。有什么想法吗?
【问题讨论】:
【参考方案1】:我在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();
【讨论】:
以上是关于为嵌入的 Undertow 设置默认编码的主要内容,如果未能解决你的问题,请参考以下文章