解决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 快速结束当前正在执行的动画
Nov 20 Javascript
鼠标拖拽移动子窗体的JS实现
Feb 25 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
Sep 16 Javascript
JavaScript实现in-place思想的快速排序方法
Aug 07 Javascript
基于jquery实现弹幕效果
Sep 29 Javascript
将json转换成struts参数的方法
Nov 08 Javascript
JS模拟实现ECMAScript5新增的数组方法
Mar 20 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
Feb 27 jQuery
老生常谈JS中的继承及实现代码
Jul 06 Javascript
angular4笔记系列之内置指令小结
Nov 09 Javascript
vue ssr 实现方式(学习笔记)
Jan 18 Javascript
ES6扩展运算符和rest运算符用法实例分析
May 23 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+mysql数据库实现无限分类的方法
2014/12/12 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
js prototype截取字符串函数
2010/04/01 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
Shell编程面试题
2012/05/30 面试题
烹饪自我鉴定
2014/03/01 职场文书
社区义诊活动总结
2014/04/30 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书