解决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 基础学习笔记之文档处理
May 29 Javascript
this和执行上下文实现代码
Jul 01 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
Jan 09 Javascript
Javascript基础教程之关键字和保留字汇总
Jan 18 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
基于JavaScript实现智能右键菜单
Mar 02 Javascript
微信QQ的二维码登录原理js代码解析
Jun 23 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
解决angularjs service中依赖注入$scope报错的问题
Oct 02 Javascript
vue--vuex详解
Apr 15 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
Nov 03 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
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(2)――PHP类型
2010/02/15 PHP
php生成excel列序号代码实例
2013/12/24 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
原生JS实现留言板
2020/03/26 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
在Django的session中使用User对象的方法
2015/07/23 Python
pygame实现弹力球及其变速效果
2017/07/03 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
Python while循环使用else语句代码实例
2020/02/07 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
计算机工程学院个人求职信
2013/10/05 职场文书
物流管理专业应届生求职信
2013/11/21 职场文书
给男朋友的道歉信
2014/01/12 职场文书
物理学专业自荐信
2014/06/11 职场文书
代收款委托书范本
2014/10/01 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript