解决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中设置元素class的三种方法小结
Aug 28 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
Apr 18 Javascript
使用js实现关闭js弹出层的窗口
Feb 10 Javascript
js自定义select下拉框美化特效
May 12 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
JavaScript 是什么意思
Sep 22 Javascript
微信小程序 Audio API详解及实例代码
Sep 30 Javascript
详解webpack与SPA实践之开发环境搭建
Dec 18 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 Javascript
webpack结合express实现自动刷新的方法
May 07 Javascript
javascript实现简易聊天室
Jul 12 Javascript
解决vue-loader加载不上的问题
Oct 21 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
德生H-501的评价与改造
2021/03/02 无线电
php时间戳转换的示例
2014/03/31 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
Egret引擎开发指南之编译项目
2014/09/03 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
电脑售后服务承诺书
2014/03/27 职场文书
2014年设计师工作总结
2014/11/25 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
python实现三次密码验证的示例
2021/04/29 Python
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
php实现自动生成验证码的实例讲解
2021/11/17 PHP