解决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 相关文章推荐
用 JavaScript 迁移目录
Dec 18 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
May 07 Javascript
初步使用Node连接Mysql数据库
Mar 03 Javascript
JavaScript事件代理和委托详解
Apr 08 Javascript
JS iFrame加载慢怎么解决
May 13 Javascript
微信小程序侧边栏滑动特效(左右滑动)
Jan 23 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
Sep 11 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
Jun 22 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 Javascript
vue组件开发之slider组件使用详解
Aug 21 Javascript
Vue3.0的优化总结
Oct 16 Javascript
关于JavaScript回调函数的深入理解
Jun 27 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
PHP 透明水印生成代码
2012/08/27 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
大学生四年生活自我鉴定
2013/11/21 职场文书
迎接领导欢迎词
2014/01/11 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
加强作风建设工作总结
2014/10/23 职场文书
中学推普周活动总结
2015/05/07 职场文书
可可西里观后感
2015/06/08 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
Python OpenCV 图像平移的实现示例
2021/06/04 Python
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android