我正在使用Glassfish服务器3.1.2在eclipse indigo中使用JSF和Spring构建一个Web应用程序。一切都很好,但它在2个JavaScript文件中的firebug中显示了这个错误。
当我检查这些文件时,我没有在这些文件中发现任何非法字符,但是firebug仍然显示这一点 我在ASP.Net项目中使用过这些文件并且它们没有在那里乱,所以我检查并匹配了两个项目的内容类型然后我发现在ASP.Net项目中这些文件有
在我的JSP-Spring(JAVA)项目中
就是这样。所以你可以看到sames文件改变了他们的内容方案。我发现这个方案可以通过glassfish服务器中的配置进行更改。所以我想将我的JS文件content-Type
更改为与ASP类型相同。
如果有人有任何其他解决方案,请分享,因为除了从glassfish服务器更改方案之外我没有找到任何解决方案
谢谢
答案 0 :(得分:1)
您看到的那些奇怪的角色是UTF-8 Byte Order Mark。它们是一组特殊的字节,用于指示文档的编码方式。不幸的是,当解释为ISO-8859-1时,你最终会遇到问题。有两种方法可以解决这个问题。
第一种方法是将输出字符集更改为UTF-8。我相信这可以在您的服务器配置中,web.xml configuration中完成,或者通过在代码中设置HTTP请求对象上的字符集来完成;例如:yourServletRequest.setCharacterEncoding("UTF-8");
第二种方法是从Javascript文件中删除BOM。您可以在Notepad++中打开它们,转到编码>来执行此操作。 转换为ANSI ,然后保存它们。或者,在记事本中打开它们,然后转到另存为并确保编码选项在保存之前设置为ANSI。请注意,如果您的Javascript文件中包含非ISO-8859-1文本,则可能会出现问题,但这不太可能。