解决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写的一个链表实现代码
Oct 25 Javascript
jQuery的end()方法使用详解
Jul 15 Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
Jan 19 Javascript
mpvue 如何使用腾讯视频插件的方法
Jul 16 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
Jul 28 Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 Javascript
JS脚本实现定时到网站上签到/签退功能
Apr 22 Javascript
Vue如何基于es6导入外部js文件
May 15 Javascript
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
keep-alive保持组件状态的方法
Dec 02 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
Mar 01 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
smarty中常用方法实例总结
2015/08/07 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
用JavaScript显示随机图像或引用
2009/04/21 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
美国在线珠宝商店:SZUL
2017/02/11 全球购物
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
读书心得体会
2013/12/28 职场文书
农场厂长岗位职责
2013/12/28 职场文书
城管综合整治方案
2014/05/01 职场文书
销售队伍口号
2014/06/11 职场文书
企业法人代表证明书
2014/09/27 职场文书
教师节主持词开场白
2015/05/29 职场文书
Python实现天气查询软件
2021/06/07 Python