当我查看这个物理编码为 UTF-8 并将 UTF-8 指定为我的 PC 上的字符集(使用 firefox)的网页时,它不会显示需要正确编码为多个字节的字符,例如 Björk 中的 ö ,请点击链接然后打开B部分看看我的意思
http://www.jthink.net/songkong/reports/FixSongsReport00084/FixSongsReport00084_index.html
(该页面托管在使用 jakarta-tomcat 的 linux 服务器上)
然而,当原始文件作为文件存储在我的硬盘上时,它在 Firefox 中的显示效果很好。我什至将文件从远程站点复制回我的本地 PC,以确保具有相同的文件,并且它仍然显示正常。
那么为什么它在网站上显示不正常,会不会是tomcat的问题?
编辑 在第一个答案的评论中,它说我需要确保我需要正确设置响应编码,我该怎么做 - html 页面不是由代码生成的 tomcat 只是按照提供的方式提供页面
请注意,我不将 uri 参数解析为 utf8,并且我不希望我创建的 jsp 页面编码为 UTF8,这些工作正常为 ISO-8859-1,如果我更改它们可能会中断。我只想将 .html 页面显示为 UTF8 ,并且仅对于此应用程序,我在 webapps 文件夹中有多个应用程序,并且我使用的是 Tomcat 7
编辑
因此,正如以下答案中所建议的,我已将其添加到我的 web.xml 文件中
<filter>
<filter-name>CharacterEncoding</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>
和那种作品,网址现在正确显示,但链接不起作用。
当我查看源代码时,它似乎使用了正确的链接,但错误消息将其显示为扩展符号而不是 UTF8。
她的整个报告,所以你可以点击左侧的链接并在右侧查看结果
http://www.jthink.net/songkong/reports/FixSongsReport00084/FixSongsReport00084.html
即使我复制链接并粘贴它也不起作用,因为链接似乎粘贴是错误的,尽管它随后会自行纠正