解决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的设计模式
Nov 22 Javascript
用js实现计算代码行数的简单方法附代码
Aug 13 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
Jan 15 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
Nov 18 Javascript
javaScript给元素添加多个class的简单实现
Jul 20 Javascript
AngularJs Managing Service Dependencies详解
Sep 02 Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
B/S(Web)实时通讯解决方案分享
Apr 06 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
编写React组件项目实践分析
Mar 04 Javascript
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
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入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
fgetcvs在linux的问题
2012/01/15 PHP
simplehtmldom Doc api帮助文档
2012/03/26 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JS控制表格隔行变色
2006/06/26 Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
python计算两个数的百分比方法
2018/06/29 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
往来会计岗位职责
2013/12/19 职场文书
英语道歉信范文
2014/01/09 职场文书
秋季运动会活动方案
2014/02/05 职场文书
骨干教师考核方案
2014/05/09 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
Redis实现分布式锁的五种方法详解
2022/06/14 Redis
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技
服务器nginx权限被拒绝解决案例
2022/09/23 Servers