解决JS外部文件中文注释出现乱码问题


Posted in Javascript onJuly 09, 2017

问题描述

中文乱码在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外部文件中文注释出现乱码问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
用js实现计算代码行数的简单方法附代码
Aug 13 Javascript
js实现图片从左往右渐变切换效果的方法
Feb 06 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
Apr 02 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
js遍历获取表格内数据的方法(必看)
Apr 06 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
Jun 01 Javascript
微信小程序实现点击空白隐藏的方法示例
Aug 13 Javascript
微信小程序定义和调用全局变量globalData的实现
Nov 01 Javascript
JS函数参数的传递与同名参数实例分析
Mar 16 Javascript
js动态生成表格(节点操作)
Jan 12 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
Jul 09 #Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
Jul 08 #jQuery
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 #jQuery
详谈javascript精度问题与调整
Jul 08 #Javascript
javascript定时器取消定时器及优化方法
Jul 08 #Javascript
Javascript 一些需要注意的细节(必看篇)
Jul 08 #Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 #jQuery
You might like
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
深入理解javaScript中的事件驱动
2013/05/21 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
详解js的六大数据类型
2016/12/27 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
python 自动重连wifi windows的方法
2018/12/18 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
Python的pygame安装教程详解
2020/02/10 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
第二课堂活动总结
2014/05/07 职场文书
党建工作经验交流材料
2014/05/25 职场文书
订货会邀请函
2015/01/31 职场文书
内勤岗位职责
2015/02/10 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
乔迁新居祝福语
2019/11/04 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL