我修改了the embedded-jetty project来创建a stand-alone jsp-viewer(一个包含完整源代码的文件)。结果很好,但是在显示包含特殊字形的JSP时存在问题。问题是不在传输标记时未设置Content-Type
,但渲染的标记是乱码(在view-source
或通过curl
)。必须使用错误的字符编码读取JSP文件,但使用-Dfile.encoding=UTF-8
启动jvm不会执行任何操作。
这些字符串
Butikknavn – et smartere valg
få ekstra fordeler når
变为
Butikknavn â<80><93> et smartere valg
få ekstra fordeler når
编辑:只是说明显而已,内容标题已经设置,从原始HTTP响应中可以看出
Content-Type:text/html;charset=utf-8
答案 0 :(得分:1)
你必须添加
<%@ pageEncoding="UTF-8"%>
到JSP文件中。
-Dfile.encoding=UTF-8
应该为整个Jetty实例执行pageEncoding="UTF-8"
部分,遗憾的是,正如您所提到的,它没有。您也可以尝试将<page-encoding>UTF-8</page-encoding>
添加到web.xml
(如here所述),但我从未尝试过。
答案 1 :(得分:0)
您的HTTP响应可能缺少内容类型标头。尝试按如下方式添加一个:
Content-Type: text/html; charset=utf-8