解决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 相关文章推荐
在Javascript里访问SharePoint列表数据的实现方法
May 22 Javascript
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
Jun 13 Javascript
JavaScript跨域方法汇总
Oct 16 Javascript
Angularjs material 实现搜索框功能
Mar 08 Javascript
jQuery中Nicescroll滚动条插件的用法
Nov 10 Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
Feb 28 Javascript
JavaScript实现网页头部进度条刷新
Apr 16 Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
Nov 13 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
Jul 20 Javascript
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+mysql扎实个人基本功
2008/03/27 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
php简单统计在线人数的方法
2016/05/10 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
几个有趣的Javascript Hack
2010/07/24 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
轮播图组件js代码
2016/08/08 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
python和pyqt实现360的CLable控件
2014/02/21 Python
解析Python中的二进制位运算符
2015/05/13 Python
Django的性能优化实现解析
2019/07/30 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
应届生体育教师自荐信
2013/10/03 职场文书
银行实习自我鉴定
2013/10/12 职场文书
合同协议书格式
2014/04/18 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
Redis入门教程详解
2021/08/30 Redis
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js