当前位置: 首页 > 知识库问答 >
问题:

如何设置vertx的字符编码。io staticHandler?

柯耀
2023-03-14

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

现在,所有utf-8数据(如iconfont图标字符)都被篡改了。

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

如何强制首选字符编码,或使statichandler识别文件编码?

共有3个答案

杨飞
2023-03-14

在vertx 3.4.0中,您可以

StaticHandler.create().setDefaultContentEncoding("UTF-8");

文档

虞俊美
2023-03-14

回答我自己的问题:

System.setProperty("file.encoding","UTF-8");
Field charset = Charset.class.getDeclaredField("defaultCharset");
charset.setAccessible(true);
charset.set(null,null);

发件人:设置默认Java字符编码?

翟俊
2023-03-14

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

String defaultContentEncoding = java.nio.charset.Charset.defaultCharset().name();

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

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

 类似资料:
  • 问题内容: 如何设置默认的Java字符编码? 问题答案: 必须在JVM启动时指定该属性。通过输入你的主要方法时,编码中使用的字符由和默认的构造函数,并已被永久缓存。 在特殊情况下, 可以使用环境变量来指定此属性,但通常是这样完成的: 将反映对属性的更改,但是核心Java库中需要确定默认字符编码的大多数代码都不使用此机制。 在编码或解码时,可以查询属性或查找当前的默认编码,并使用适当的方法或构造函数

  • 我有一个jsp文件,在那里我收集表单值,并通过jQuery Ajax将其发送到strut 2 action class。 我的Ajax函数看起来像 当我解码并提醒它的文本我正确编码和解码。 当我通过ajax将其发送到struts2时,它会产生问题。 我已经检查了Interceptor中的值它显示值??????? 拦截器 在我的jsp文件中,我将内容类型设置为UTF-8,在ajax中,我也检查了内容

  • 我正在尝试将AEM/Sling使用的字符编码设置为UTF-8。根据Sling文档,这可以被Sling主servlet上的属性覆盖: 从Sling Engine 2.2.4开始,请求参数是可选的。从这个版本开始,Sling Main Servlet支持一个配置设置,允许在请求参数丢失时更改所使用的默认字符编码。 null

  • 问题内容: 我正在从Java中的Web servlet调用SAP SOAP服务。由于某种原因,每次我在请求的字段中使用特殊字符(例如“è”或“à”)时,SAP都会给我一个错误。SOAP Service的WSDL在UTF-8中定义,我已经相应地设置了字符编码,如下所示。但是我不确定这是正确的方法。另外,请注意,如果我使用SOAP UI(具有相同的信封),则请求可以正常工作,因此它一定是Java方面的

  • 问题内容: 如何通过编程正确设置JVM(1.5.x)使用​​的默认字符编码? 我读过,这-曾经是使用旧JVM的方法。由于没有理由,我没有那么奢侈。 我试过了: 并且该属性被设置,但似乎不会导致下面的最终调用使用UTF8: 问题答案: 不幸的是,必须在JVM启动时指定该属性。通过输入你的主要方法时,编码中使用的字符由和默认的构造函数,并已被永久缓存。 正如指出的那样,在这种特殊情况下, 可以使用环境

  • 本文向大家介绍MySQL字符编码设置方法,包括了MySQL字符编码设置方法的使用技巧和注意事项,需要的朋友参考一下 通过show variables like 'character_set%%';查看编码 修改mysql的编码方式可以有以下几个: 1.通过配置文件修改my.ini(windows下)或/etc/my.cnf(linux下) 分别添加如下内容 2.创建数据库时设置编码 create