2013-12-12 21 views
3

我正在构建一个Web应用程序,并且必须处理国际字符(例如“J'aisurveillédesélèveàlarôtule”)。某些数据位于文件系统任意目录中的任意静态文本文件中。这些文件都是utf-8(感谢标准化!)将字符集添加到Jetty中的静态文件头

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

问题是,Jetty ResourceHandler类似乎没有发送字符集以及静态文件Content-Type。如果我要求index.html,Content-Typetext/html。要正确处理突出的性格,我想它是Content-Type: text/html; charset=utf-8

对于有UTF-8的默认字符集像text/htmltext/css文件,这是好的,但一些文本文件,不具有一个并得到错误地解释为Windows-1252和重音字符变得乱码(我刚刚得到了一个Québec酒吧回来,而不是魁北克酒商店)。有没有办法指定一个默认的字符集,并告诉码头总是发送它?类似apache AddDefaultCharset utf-8

回答

5

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

只需指定要控制的文件的MIME类型映射的扩展名,那么该怎么办?

MimeTypes mimeTypes = resourceHandler.getMimeTypes(); 
mimeTypes.addMimeMapping("txt", "text/plain; charset=UTF-8"); 
+0

事实上,这是更可配置。像魅力一样工作。 –

相关问题