解决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 相关文章推荐
Prototype使用指南之selector.js
Jan 10 Javascript
textarea的value是html文件源代码,存成html文件的代码
Apr 20 Javascript
jQuery对象和Javascript对象之间转换的实例代码
Mar 20 Javascript
js函数在frame中的相互调用详解
Mar 03 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
Sep 05 Javascript
Angularjs修改密码的实例代码
May 26 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
Nov 19 Javascript
vue获取当前激活路由的方法
Mar 17 Javascript
JS简单生成由字母数字组合随机字符串示例
May 25 Javascript
JS内部事件机制之单线程原理
Jul 02 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
Sep 27 Javascript
Vue封装Axios请求和拦截器的步骤
Sep 16 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文件上传的简单实例
2013/10/19 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Python小进度条显示代码
2019/03/05 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
新学期决心书
2014/03/11 职场文书
车间主任岗位职责
2014/03/16 职场文书
会计求职自荐信
2015/03/26 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python