解决JS请求服务器gbk文件乱码的问题


Posted in Javascript onOctober 16, 2015

JS获取服务器编码格式为gb2312的文件时内容为乱码,ajax网络请求内部使用的是XMLHttpRequest,所以在请求之前需要设置一下编码格式,但是设置xhr.setRequestHeader("accept", "text/csv;charset=gb2312,*/*");没有效果,只有设置xhr.overrideMimeType("text/csv;charset=gb2312");才正确,代码如下:

<span style="font-size:18px;">$.ajax({ 
    type: "get", 
    url:"http://7xnhdv.com1.z0.glb.clouddn.com/test1.csv", 
    beforeSend: function(xhr) {  //beforeSend定义全局变量 
     //  xhr.setRequestHeader("accept", "text/csv;charset=gb2312,*/*"); 
      xhr.overrideMimeType("text/csv;charset=gb2312"); 
    }, 
    success: function(xmlDoc, textStatus, xhr)  
    { 
      if(xhr.status == 200) 
      { 
        $('#view0').text(xmlDoc); 
      } 
    } 
  } 
  );</span>

overrideMimeType作用将覆盖发送给服务器的头部,强制text/csv;charset=gb2312作为 mime-type。

ps:js中文显示乱码或在页面显示乱码解决方法

 ①.js 文件中文显示乱码

Javascript文件XX.js编辑保存时有一种编码方案(如GBK),当打开文件的时候所用的编码(如UTF-8)和保存时的编码方案不一致时,则会出现中文显示乱码。

解决方案:

(1) 用编辑器打开浏览的时候,选择和原文件编码(如GBK)一致的编码方式查看,则不会出现乱码;

(2)在eclipse中的package explorer中选中乱码的XX.js,右键菜单中选择properties,在Text file encoding中选择与XX.js编辑保存时的编码(如GBK),则可以正常显示;

②网站页面中JavaScript中中文字段乱码

在eclipse或者编辑器中XX.js中中文显示正常,在页面调用XX.js,执行后页面结果中中文字段显示乱码。

解决方案:

在引用XX.js的页面上“显示”加上XX.js文件的编码方式,使之与XX.js文件的本身的编码方式(如GBK)保持一致。

<script type="text/javascript" language="JavaScript" src="/js/XX.js" charset=“GBK”></script>

建议:

(1)在用Eclipse或者Myeclipse新建XX.js,进行编辑时,建议先将Text file encoding改为UTF-8,然后进行编辑保存。
(2)用文本文档或者其他编辑器编辑保存XX.js, 建议以UTF-8的编码方式保存。
(3) 在引用XX.js的页面上“显示”加上XX.js文件的编码方式UTF-8。

<script type="text/javascript" language="JavaScript" src="/js/XX.js" charset=“utf-8”></script>
Javascript 相关文章推荐
收集的一些Array及String原型对象的扩展实现代码
Dec 05 Javascript
Javascript中Event属性搜集整理
Sep 17 Javascript
浅谈JavaScript中的string拥有方法的原因
Aug 28 Javascript
通过设置CSS中的position属性来固定层的位置
Dec 14 Javascript
Angular表单验证实例详解
Oct 20 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
性能优化之代码优化页面加载速度
Mar 01 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
Sep 11 Javascript
vue项目中的webpack-dev-sever配置方法
Dec 14 Javascript
解决vue 按钮多次点击重复提交数据问题
May 10 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
Aug 20 Javascript
jQuery实现B2B网站后台管理系统侧导航
Jul 08 jQuery
jQuery实现简易的天天爱消除小游戏
Oct 16 #Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
Oct 16 #Javascript
纯JavaScript代码实现移动设备绘图解锁
Oct 16 #Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
Oct 16 #Javascript
javascript实现3D切换焦点图
Oct 16 #Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
Oct 16 #Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 #Javascript
You might like
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
php+mysql实现无限级分类
2015/11/11 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
Python中生成器和yield语句的用法详解
2015/04/17 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
建筑安全生产责任书
2014/07/22 职场文书
初级党校心得体会
2014/09/11 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
孔繁森观后感
2015/06/10 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
我的收音机情缘
2022/04/05 无线电
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript