解决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 相关文章推荐
Jquery 设置标题的自动翻转
Oct 03 Javascript
异步动态加载JS并运行(示例代码)
Dec 13 Javascript
Javascript基础教程之比较操作符
Jan 18 Javascript
jQuery替换textarea中换行的方法
Jun 10 Javascript
你所未知的3种Node.js代码优化方式
Feb 25 Javascript
纯js实现瀑布流布局及ajax动态新增数据
Apr 07 Javascript
详解Node.js:events事件模块
Nov 24 Javascript
jQuery Ajax实现跨域请求
Jan 21 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
Vue使用NPM方式搭建项目
Oct 25 Javascript
vue resource发送请求的几种方式
Sep 30 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
Jun 11 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使用内置函数生成图片的方法详解
2016/05/09 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
详解webpack 入门与解析
2018/04/09 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
Python Deque 模块使用详解
2014/07/04 Python
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Python多继承原理与用法示例
2018/08/23 Python
详解numpy的argmax的具体使用
2019/05/27 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
Python urllib3软件包的使用说明
2020/11/18 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
机修工工作职责
2014/02/21 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
二人合伙经营协议书
2014/09/13 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python