问题描述
中文乱码在Java Web开发中经常出现,这是由于不同的部分编码不一样造成的,一般在开发中,我们把所有能设编码的地方,全部设置成UTF-8,但是有时候还是会出现乱码的情况。在开发中,一般把js代码从html中抽出来,放到一个js文件中,js文件中包含中文,在浏览器中页面没有出现乱码,一切正常,当我们打开源码点进js文件,我们发现js文件中的中文注释和js代码中的中文全是乱码。
问题原因
我们没有告诉浏览器,当前的文件使用何种编码,浏览器默认使用的的GBK编码,但是我们js文件使用的UTF-8的编码,当然会出现乱码了,有的同学会问了,为什么页面没有出现,那是因为我们在页面里面加上以下代码:
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
或者:
<meta charset="utf-8">
这就告诉了浏览器,你用UTF-8来渲染这个页面,我们这个页面是用UTF-8来编码的,这个时候就是正常显示的。或者是在Java代码中使用下面的代码:
response.setContentType("text/html;charset=UTF-8");
这也是相当于告诉浏览器,当前使用的UTF-8编码。
解决方案
聪明的同学已经想到了,我们要告诉浏览器,当前文件的编码格式,在页面中,我们可以使用上面的三种方式来告诉浏览器当前页面的编码,但是在js文件中,使用不了。咋办?其实很简单,我们可以在web.xml中,使用一个过滤器,来对所有的的响应设置编码格式为UTF-8:
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
上面的过滤器,对所有的请求响应设置的编码为UTF-8。
清除一下浏览器缓存,刷新一下,我们发现已经能够正确的显示中文了。
说明一下,前提是所有的文件编码是UTF-8。
以上所述是小编给大家介绍的解决JS外部文件中文注释出现乱码问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
本文向大家介绍python json.dumps中文乱码问题解决,包括了python json.dumps中文乱码问题解决的使用技巧和注意事项,需要的朋友参考一下 json.dumps(var,ensure_ascii=False)并不能解决中文乱码的问题 json.dumps在不同版本的Python下会有不同的表现, 注意下面提到的中文乱码问题在Python3版本中不存在。 注:下面的代码再py
本文向大家介绍js传值后台中文出现乱码的解决方法,包括了js传值后台中文出现乱码的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js传值后台中文出现乱码的解决方法。分享给大家供大家参考,具体如下: 在“test.jsp”页面中,需要通过js将值传递到后台,后台根据传递的值进行数据查询时,通过test.jsp的js进行编码(标注部分的代码),后台Java解码(注释标注部分为解码),
本文向大家介绍JS传值出现中文参数乱码的解决方法,包括了JS传值出现中文参数乱码的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS传值出现中文参数乱码的解决方法。分享给大家供大家参考,具体如下: 下面是Action代码片段 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript传值操作技巧总结》、《javascript编码操作技巧总结》、《Jav
本文向大家介绍iOS读取txt文件出现中文乱码的解决方法,包括了iOS读取txt文件出现中文乱码的解决方法的使用技巧和注意事项,需要的朋友参考一下 一、情景描述: 后台给一个txt文件,编码是utf-8,在Mac电脑Xcode开发环境下读取txt文件内容,汉字会出现乱码,英文没有乱码这种情况。 二、尝试解决方法: 修改编码格式,尝试了NSUTF16StringEncoding,NSUTF8St
本文向大家介绍解决springmvc+mybatis+mysql中文乱码问题,包括了解决springmvc+mybatis+mysql中文乱码问题的使用技巧和注意事项,需要的朋友参考一下 近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码 最初在mybatis配置如下 其中表News的text字段为blob类型 如此查出的text值在控制台中一直显示乱码。 之后g
本文向大家介绍解决python2.7 查询mysql时出现中文乱码,包括了解决python2.7 查询mysql时出现中文乱码的使用技巧和注意事项,需要的朋友参考一下 问题: python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 --- 可能情况: 1.mysql数据库各项没有设置编码,默认为'latin' 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置