2013-12-12 40 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

事實上,這是更可配置。像魅力一樣工作。 –

相關問題