JS文件中的中文在网页上显示为乱码解决方法

  JS编码转换,这句话本身就是一句具有二重义的话。通常理解为JS文件里能转换编码的代码,但是,我所碰到的问题并不是这样的,是要解决JS文件本身的编码问题,它是UTF-8编码的还是ANSI编码的?在百度、谷歌上一搜,大家都是说通过JAVA后台处理来解决编码问题,试问,这样能解决JS文件本身的编码问题吗?

  之所以提出JS文件本身编码问题,是因为JS文件的编码不同,造成了中文显示为乱码。

  通常,在Eclipse中建立一个JS文件(含有中文),在Eclipse的编辑器中看到的中文都很正常,但是显示在网页上就是乱码,而我的页面全部都是采用UTF-8编码进行编码的,为此,我想到了,这可能是JS文件本身编码问题造成的。


  在Eclipse中,JS文件中的中文显示正常


  在网页中,中文却显示为乱码

  我想到了这可能是由于JS文件本身编码问题所导致的,其实这是正确的。这里要用到一个小工具,叫NotePad2,翻译过来就是记事本第代,这个小工具很好用,绿色免安装,完全可以取代windows系统自带的记事本软件。它的下载地址是:http://download.csdn.net/source/1732849

  用NotePad2打开JS文件,查看JS文件的编码,发现JS文件的编码是ANSI,ANSI编码采用0x80~0xFF范围内的2个字节来表示1个字符。例如,汉字“中”在中文操作系统中,使用[0xD6,0xD0]这两个字节来存储。但是,不同的国家和地区制定了不同的ANSI标准,使得不同ANSI编码之间互不兼容。大家都知道,在中国,浏览器的编码要么是GBK或GB2312编码,要么是UTF8编码,当以ANSI编码的中文发送到网页上时,自然就显示为乱码了,所以这是问题的根本。


  借助NotePad2软件,将JS文件的编码转换成UTF-8编码,因为UTF-8编码是计算机通用编码,能支持几乎所有国家或地区的语言文字,而且浏览器本身就支持UTF-8编码。


  OK,再来看看在浏览器上的效果。显而易见,中文显示正常,乱码问题解决。并非像网上所说的“使用JS中的encodeURIComponent或encodeURI方法”,既复杂又难懂,还要经过复杂的编程,实在是不可取。


  经我的测试,无论是使用新建文本文档然后将扩展名改成.js,还是用其他软件或工具创建的JS文件,用NotePad2软件打开查看编码,发现 JS文件的编码都是ANSI,因此我猜测,难道JS文件的默认编码是ANSI编码?当然这个我并没有去考证,在网上也没有相关的资料可以证明JS文件的默认编码是ANSI编码,仅个人猜测而已。

  但是,至少,如果JS文件中的中文在网页上显示为乱码,不妨采用本文章中的方法来试一试,或许能解决使你很头疼的问题。

时间: 2024-12-31 00:30:53

JS文件中的中文在网页上显示为乱码解决方法的相关文章

引入JS文件IE6报语法错误或缺少对象问题的解决方法

 引入JS文件IE6报错或缺少对象问题想必很多朋友都有遇到过吧,这个问题在于文件编码上,下面为大家介绍下比较不错的解决方法 解决"引入JS文件IE6报错"的问题    问题描述:    页面引入一个js文件,其中定义了函数或对象,然后在页面中调用函数或对象时,在IE6会报"语法错误"或"缺少对象".在IE6+或者IE7却运行正常.    问题分析:    这个对象在引入的JS文件中是存在的,因为在IE6+以上的浏览器都可以正常运行.这个问题在于文

引入JS文件IE6报语法错误或缺少对象问题的解决方法_javascript技巧

解决"引入JS文件IE6报错"的问题 问题描述: 页面引入一个js文件,其中定义了函数或对象,然后在页面中调用函数或对象时,在IE6会报"语法错误"或"缺少对象".在IE6+或者IE7却运行正常. 问题分析: 这个对象在引入的JS文件中是存在的,因为在IE6+以上的浏览器都可以正常运行.这个问题在于文件编码上,如果JS文件编码与当前页面的编码不一致,就可能导致在IE6中页面不能正常获取和解析JS文件中的内容,在IE6中,默认引入的文件和页面的编码

IE7.0以下版本列表li中的元素错位一个上一个下的解决方法

在IE7.0以下time元素与a元素错位,一个在上,一个在下.导致的原因是这种情况下span-time元素的margin-top会自动增加20px左右,具体的解决方法如下,感兴趣的朋友可以参考下   HTML: 复制代码 代码如下: <li><span class="tag">[${ross.parentName}] </span><a href="../ShowNews?id=${ross.newsID}">${ro

IE浏览器网页上视频播放不了解决方法

下面的其它视频也没有任何显示. 小编先后试了在Internet选项中还原高级设置和重置IE浏览器,但依然没有解决问题.后来想到显卡驱动是通过Windows更新安装的微软提供的驱动,会不会是这个原因呢?于是使用驱动精灵更新了一下显卡驱动,然后重新打开IE11浏览器,结果发现百度网盘的视频已经能够正常播放了. 最后结大家总结一下其它问题 1.首先我们需要普及一下网络视频播放器的知识,如下图所示,但凡一个视频,你点击右键总会发现有一个选项"关于Adobe Flash Player...",也

Js参数值中含有单引号或双引号问题的解决方法_javascript技巧

<script type="text/javascript">function Display(LoginEmail, UserName, ID) {        alert(LoginEmail);    }</script> 1.使用单引号传参:<a href="javascript:Display('abc@abc.com','Aleax Xie','10101239393')">Test1</a> 如果其中一

ajax中文乱码解决方法总结

ajax乱码解决办法一: 在服务器指定发送数据的格式: 在jsp文件中: response.setContentType("text/text;charset=UTF-8");//返回的是txt文本文件 或是 response.setContentType("text/xml;charset=UTF-8");//返回的xml文件 PHP:header("Content-Type:text/html;charset=GB2312"); ajax乱码

Mysql和网页显示乱码解决方法集锦_php技巧

将数据插入到php?name=%CA%FD%BE%DD%BF%E2" onclick="tagshow(event)" class="t_tag">数据库的时候显示乱码及从php?name=%CA%FD%BE%DD%BF%E2" onclick="tagshow(event)" class="t_tag">数据库读取出来的数据在网页上显示为乱码的问题,其实就是做到php?name=%CA%FD%

c#-ASP.NET中实现直接从网页上下载文件

问题描述 ASP.NET中实现直接从网页上下载文件 我想制作一个空白网页,访问网页后直接下载服务器上的程序文件到本机,下载后自动 运行程序.请各位老大指点(最好是基于C#).谢谢 解决方案 出于安全的考虑,下载后启动程序不可能实现.除非本地部署activex控件,或者干脆你自己去写浏览器. 空白网页下载,这个可以实现 <script language="javascript" type="text/javascript"> window.location

.js文件中的 javascript 无法在aspx页面中调用

问题描述 同样的代码,放在live的服务器上本机访问没有问题,javascript运行很正常(debugjavascript的选项已经打开),但是在local运行的时候出现很多objectexpected的问题,其中包括1.无法调用写在.js文件里的function2..js文件中无法调用写在aspx里的javascriptfunction3.在调试的时候会在aspx页面看到很多奇怪的字符,但是结束调试之后这些只是空格而已.想请问一下会什么会有这样的问题?放到测试和正式的服务器上都是很正常的,但