我正在构建一个网络应用程序,我必须处理国际字符(使用“J‘a测量员édesélèveàla r tule”)。有些数据位于文件系统上任意目录中的任意静态文本文件中。这些文件都是utf-8 (谢谢标准化!)
为了提供这些数据,我使用了一个嵌入的jetty和ResourceHandler处理程序。我没有任何web.xml文件。除了静态之外,我还有一堆restful可以通过servlet来处理。
问题是,Jetty ResourceHandler类似乎没有与静态文件Content-Type一起发送字符集。如果我请求index.html,Content-Type就是text/html。要正确处理重音字符,我希望它是Content-Type: text/html; charset=utf-8
对于默认字符集utf-8 (如text/html或text/css )的文件,这很好,但是有些文本文件没有这样的字符,并且被错误地解释为Windows-1252和重音字符被混淆了(我刚刚得到了魁北克白酒商店,而不是魁北克白酒商店)。是否有一种方法来指定默认字符集并告诉jetty总是发送它?类似apache AddDefaultCharset utf-8
发布于 2013-12-12 22:24:38
把所有东西都硬编码给UTF-8是错误的。
仅指定要控制的文件的扩展名为mime类型的映射如何?
MimeTypes mimeTypes = resourceHandler.getMimeTypes();
mimeTypes.addMimeMapping("txt", "text/plain; charset=UTF-8");https://stackoverflow.com/questions/20554929
复制相似问题