通过/ web- app通过tomcat提供的.html文件的UTF-8损坏。如果我直接使用打开文件file:///,它将很好。如果我在运行应用程序期间查看文件,则看起来很好。但是,当我部署为战争时,UTF-8字符会出现乱码。
file:///
响应的内容类型似乎是正确的… Content-Type: text/html;charset=UTF-8,并且HTML文件本身甚至似乎具有正确的元声明。
Content-Type: text/html;charset=UTF-8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
对于默认的URIEncoding,Tomcat的连接器设置为“ UTF-8”,因此我也不认为这是问题所在。GSP效果很好;只有HTML文件有问题。
这可能是怎么回事?
编辑: 使用firefox,我保存了原始HTML文件的本地副本,并直接从文件读取file:///...以进行比较。在 只有 文件之间的区别是,Tomcat的版本有这个替换了所有非ASCII字符:
file:///...
�
根据您使用的编辑器,哪个显示为空正方形或问号。字符本身似乎是EF BF BD,它替换了 所有 非ASCII字符。不知何故,在提供文件时,tomcat或grails只是踩着unicode字节。有什么可以做 的是 ?
EF BF BD
编辑编辑: 即使此w3测试文件具有与我的文件相同的行为,表明我的文件可能还不错,并且Tomcat / Grails确实存在问题。
至少Grails 1.3.7无法正确提供HTML文件。编写自己的文件服务器控制器。