解决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 相关文章推荐
利用ajaxfileupload插件实现文件上传无刷新的具体方法
Jun 08 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
Oct 17 Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 Javascript
jquery 获取select数组与name数组长度的实现代码
Jun 20 Javascript
详解Javascript中的原型OOP
Oct 12 Javascript
基于js实现的限制文本框只可以输入数字
Dec 05 Javascript
jQuery实现级联下拉框实战(5)
Feb 08 Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 Javascript
Angular指令之restict匹配模式的详解
Jul 27 Javascript
深入理解Vue 单向数据流的原理
Nov 09 Javascript
Angular 封装并发布组件的方法示例
Apr 19 Javascript
小程序的上传文件接口的注意要点解析
Sep 17 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
综合图片计数器
2006/10/09 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
PHP时间函数使用详解
2019/03/21 PHP
使用JQuery和s3captche实现一个水果名字的验证
2009/08/14 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
RC4文件加密的python实现方法
2015/06/30 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
简述数组与指针的区别
2014/01/02 面试题
实习生个人的自我评价
2013/12/08 职场文书
出纳工作岗位责任制
2014/02/02 职场文书
2014年纪检工作总结
2014/11/12 职场文书
2014年市场部工作总结
2014/11/25 职场文书
爱的承诺书
2015/01/20 职场文书
个人总结格式范文
2015/03/09 职场文书
被告答辩状范文
2015/05/22 职场文书
孔繁森观后感
2015/06/10 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
SpringBoot集成Redis的思路详解
2021/10/16 Redis