将charset添加到Jetty中的静态文件头

Lau*_*Roy 3 utf-8 character-encoding static-files embedded-jetty

我正在构建一个Web应用程序,我必须处理国际字符(例如"J'aivisualillédesélèveàladôtule").某些数据位于文件系统上任意目录中的任意静态文本文件中.这些文件都是utf-8(感谢标准化!)

为了提供这些数据,我使用了一个带有ResourceHandler处理程序的嵌入式jetty.我没有任何web.xml文件.除了静态之外,我还有一堆通过servlet处理的restful API.

问题是,Jetty ResourceHandler类似乎没有随静态文件一起发送字符集Content-Type.如果我请求index.html, Content-Typetext/html.为了正确处理突出的角色,我希望它能成为现实Content-Type: text/html; charset=utf-8

对于具有utf-8的默认字符集的文件,text/html或者text/css,这很好,但是有些文本文件没有,并且被错误地解释为Windows-1252,并且重音字符变得乱码(我只是回到了QuébecLiquor Store,而不是魁北克酒商店).有没有办法指定默认字符集并告诉jetty始终发送它?像阿帕奇这样的东西AddDefaultCharset utf-8

Joa*_*elt 5

将所有内容硬编码为UTF-8是错误的.

如何为要控制的文件指定mime-type映射的扩展名呢?

MimeTypes mimeTypes = resourceHandler.getMimeTypes();
mimeTypes.addMimeMapping("txt", "text/plain; charset=UTF-8");
Run Code Online (Sandbox Code Playgroud)