刚刚做了一个表单验证,JS控制的错误提示框老是乱码,JS文件里的文字却显示是正常的。
全站都已经添加了“UTF-8”编码过滤器,在<script charset="UTF-8" type="text/javascript" src="<c:url value='/jsps/js/user/regist.js'/>">里也设置了JS的编码格式,但还是不管用。想了一阵才发现可能是JS文件的保存格式跟网站的编码格式不一样,去看了一下果真如此!(插一句,在Myeclipse里右键JS文件选择Properties可以设置保存格式)JS文件使用了默认的GBK格式,汉字保存了之后的在Myeclipse还是按GBK显示,所以显示肯定正常,但保存的编码提交给网页之后和“UTF-8”就不兼容了。和之前遇到的把request接收保存到数据库乱码问题有点像,可以提供类似的思路。
所以以后JS乱码问题要关注三个方面:1、网页的编码格式 2、JS引用的编码格式 3、JS文件保存的编码格式。