一尘不染

Grails-将HTML文件用作UTF-8?

tomcat

通过/ web-
app通过tomcat提供的.html文件的UTF-8损坏。如果我直接使用打开文件file:///,它将很好。如果我在运行应用程序期间查看文件,则看起来很好。但是,当我部署为战争时,UTF-8字符会出现乱码。

响应的内容类型似乎是正确的… Content-Type: text/html;charset=UTF-8,并且HTML文件本身甚至似乎具有正确的元声明。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

对于默认的URIEncoding,Tomcat的连接器设置为“ UTF-8”,因此我也不认为这是问题所在。GSP效果很好;只有HTML文件有问题。

这可能是怎么回事?

编辑: 使用firefox,我保存了原始HTML文件的本地副本,并直接从文件读取file:///...以进行比较。在 只有
文件之间的区别是,Tomcat的版本有这个替换了所有非ASCII字符:

根据您使用的编辑器,哪个显示为空正方形或问号。字符本身似乎是EF BF BD,它替换了 所有
非ASCII字符。不知何故,在提供文件时,tomcat或grails只是踩着unicode字节。有什么可以做 的是

编辑编辑:
即使此w3测试文件具有与我的文件相同的行为,表明我的文件可能还不错,并且Tomcat
/ Grails确实存在问题。


阅读 215

收藏
2020-06-16

共1个答案

一尘不染

至少Grails 1.3.7无法正确提供HTML文件。编写自己的文件服务器控制器。

2020-06-16