2013-12-12 4 views
3

웹 응용 프로그램을 구축 중이며 "J'ai surveillé des élève à la rôtule"과 같은 국제 문자를 처리해야합니다. 일부 데이터는 파일 시스템의 임의의 디렉토리에있는 임의의 정적 텍스트 파일에 있습니다. 그 파일은 모두 utf-8입니다 (표준화 덕분에)Jetty의 정적 파일 헤더에 문자 세트 추가

이 데이터를 제공하기 위해 ResourceHandler 처리기가 포함 된 임베디드 부두가 사용됩니다. web.xml 파일이 없습니다. 정적에 더하여, 나는 잔뜩 서블릿을 처리 할 수있는 편안한 API를 가지고있다.

문제는 Jetty ResourceHandler 클래스가 정적 파일 Content-Type과 함께 문자 세트를 보내지 않는 것입니다. index.html을 요청하면 Content-Typetext/html입니다. 이 text/html 또는 text/css 같은 UTF-8의 디폴트 캐릭터 세트를 가지고 파일의 경우 Content-Type: text/html; charset=utf-8

로 올바르게 강조 문자를 처리하기 위해, 내가 좋아하는 것,이 괜찮지 만 일부 텍스트 파일 하나를 가지고 잘못 해석 얻을 해달라고 Windows-1252 및 악센트 부호가있는 문자가 깨졌습니다 (방금 Québec 주류 상점 대신 Québec 주류 판매점 대신). 기본 문자 집합을 지정하고 부두가 항상 그것을 보내도록 지시하는 방법이 있습니까? 아파치와 같은 것 AddDefaultCharset utf-8

답변

5

UTF-8에 대한 모든 것을 하드 코딩하는 것은 잘못되었습니다.

제어하려는 파일에 대한 mime 유형 매핑 확장을 지정하는 것은 어떻습니까?

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

사실, 이것은 훨씬 더 구성 가능합니다. 매력처럼 일했습니다. –