解决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 相关文章推荐
jQuery取id有.的值的方法
May 21 Javascript
jQuery构造函数init参数分析
May 13 Javascript
Javascript监视变量变化的方法
Jun 09 Javascript
jQuery实现的简单百分比进度条效果示例
Aug 01 Javascript
JavaScript轻松创建级联函数的方法示例
Feb 10 Javascript
jQuery滚动监听实现商城楼梯式导航效果
Mar 06 Javascript
js仿微信公众平台打标签功能
Apr 08 Javascript
JavaScript之map reduce_动力节点Java学院整理
Jun 29 Javascript
bing Map 在vue项目中的使用详解
Apr 09 Javascript
vue.js 实现输入框动态添加功能
Jun 25 Javascript
JS实现的对象去重功能示例
Jun 04 Javascript
vue 使用 canvas 实现手写电子签名
Mar 06 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表单敏感字符过滤类
2014/12/08 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
PHP对象相关知识总结
2017/04/09 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
jQuery.each()用法分享
2012/07/31 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
Jquery读取URL参数小例子
2013/08/30 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
python网络编程实例简析
2014/09/26 Python
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
Python通过文本和图片生成词云图
2020/05/21 Python
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
北京SQL新华信咨询
2016/09/30 面试题
企业优秀员工事迹材料
2014/05/28 职场文书
网站推广策划方案
2014/06/04 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
音乐研修感悟
2015/11/18 职场文书
节水宣传标语口号
2015/12/26 职场文书
工作一年自我鉴定
2019/06/20 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
Python初学者必备的文件读写指南
2021/06/23 Python