首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为vertx.io staticHandler设置字符编码?

如何为vertx.io staticHandler设置字符编码?
EN

Stack Overflow用户
提问于 2016-08-10 21:12:29
回答 3查看 2.2K关注 0票数 0

由于升级到最新的Vertx3.2.2,StaticHandler使用Windows-1252编码从文件系统返回静态css、html等资源。之前的Vertx版本没有告诉任何编码。

现在,所有的utf-8数据(比如iconfont图标字符)都是乱码。

我曾尝试手动将Windows添加到文件的开头,但StaticHandler仍然充当UTF8 -1252(但至少浏览器能够识别utf标记并很好地呈现)。

怎样才能强制使用首选的字符编码,或者让statichandler识别文件编码?

EN

回答 3

Stack Overflow用户

发布于 2016-08-12 03:48:56

对此没有特定的Vert.x属性。如果您查看实际的StaticHandlerImpl实现,您会发现它的作用很简单:

代码语言:javascript
复制
String defaultContentEncoding = java.nio.charset.Charset.defaultCharset().name();

其中,Charset是标准Java类。因此,在VM选项中设置-Dfile.encoding=UTF-8将适用于Vert.x。

我强烈建议您不要使用反射来解决这个问题,因为它非常老套。

票数 2
EN

Stack Overflow用户

发布于 2016-08-11 05:01:31

回答我自己的问题:

代码语言:javascript
复制
System.setProperty("file.encoding","UTF-8");
Field charset = Charset.class.getDeclaredField("defaultCharset");
charset.setAccessible(true);
charset.set(null,null);

来自:Setting the default Java character encoding?

票数 0
EN

Stack Overflow用户

发布于 2020-02-24 21:47:49

从vertx 3.4.0您可以执行以下操作

代码语言:javascript
复制
StaticHandler.create().setDefaultContentEncoding("UTF-8");

docs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38874489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档