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

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>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索GBK乱码
, js请求服务器
gbk中文转utf-8乱码
javascript utf8转gbk、javascript gbk编码、javascript gbk、javascript gbk utf8、javascript gbk转汉字,以便于您获取更多的相关知识。

时间: 2025-01-31 02:03:39

解决JS请求服务器gbk文件乱码的问题_javascript技巧的相关文章

解决js函数闭包内存泄露问题的办法_javascript技巧

本文通过举例,由浅入深的讲解了解决js函数闭包内存泄露问题的办法,分享给大家供大家参考,具体内容如下 原始代码: function Cars(){ this.name = "Benz"; this.color = ["white","black"]; } Cars.prototype.sayColor = function(){ var outer = this; return function(){ return outer.color };

JS获取当前脚本文件的绝对路径_javascript技巧

 当写模块加载器时,获取当前脚本文件的绝对路径作为基础路径是必不可少的一步,下面我们一起来探讨一下这个问题吧! 一.各大浏览器的实现方式  [a]. Chrome和FF  超简单的一句足矣! var getCurrAbsPath = function(){ return document.currentScript.src; }; 这里利用了对象 document.currentScript ,它返回的是当前执行的script元素:然后调用script元素的src属性即可获取脚本文件的绝对路径.

动态加载js、css等文件跨iframe实现_javascript技巧

1.动态加载js,css文件(用原生js和jquery) iframe结构: frame0(父) frame2(子) frame3(子) frame2中触发事件,动态的向frame3中 加载js.css文件和 dom元素? *同级之间可以调用,可以 通过 子-父-子 的方式调用同级 parent.parentFram("这个方法在调用其他子farme"); 1.jquery的append() 复制代码 代码如下: 速度快,同步(需要引入jquery) var oBody = docum

解决JS中乘法的浮点错误的方法_javascript技巧

JS里做小数的乘法运算时会出现浮点错误,具体可以测试一下:  <script> alert(11*22.9) </script> 结果是251.89999999999998 而不是251.9  这个问题想必有很多人为之头痛.那么如何解决呢?在此给出解决办法. 1. 复制代码 代码如下: <script> alert(11*(22.9*10)/10): </script>    解决问题的大概思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确

解决apache Web服务器网页显示乱码的方法

解决的方法之一:   (1)在每一个网页里增加 <meta http-equiv="Content-Language" content="zh-cn">; <meta http-equiv="Content-Type" content="text/html; charset=GB2312">; 并在APACHE的httpd.conf配置文件中将AddDefaultCharset ISO-8859-1 改

js 文件引入实现代码_javascript技巧

也不好麻烦让他们从新写一个方法,由于他们都引用了这个AA.js文件,想在这边在AA.js后执行一个函数自动把jq库引入,于是想到引入js文件方法: 复制代码 代码如下: getScript : function(s,call){ var el = UI.DC('script');         if (call) {             el.onload =el.onreadystatechange=call;         }         UI.A(el,'type','text

js截取中英文字符串、标点符号无乱码示例解读_javascript技巧

复制代码 代码如下: <script> function subString(str, len, hasDot) { var newLength = 0; var newStr = ""; var chineseRegex = /[^\x00-\xff]/g; var singleChar = ""; var strLength = str.replace(chineseRegex,"**").length; for(var i =

解析使用JS 清空File控件的路径值_javascript技巧

1.关于如何用脚本修改fileupload控件值的问题, 开发环境vs2005,在上传文件时,需要一个取消的按钮来清空type=file的value,而且这个页面上有多个file控件 这个比较麻烦因为file的值本身是不允许用脚本修改的(安全角度考虑) 方法1).使用脚本把这个file的input移动到一个form中,然后调用reset,如果有多个这样的input当然还要再移出来.这个方法我不会采用,因为对.net开发者 来讲习惯了一个页面就一个form所有控件都在其中. 方法2).这个方法有点

使用Ajax与服务器(JSON)通信实例_javascript技巧

 Ajax这个词,不代表任何东西,它仅仅是称呼一系列促进客户端与服务器通信的技术时所用的一个术语.服务器通信时Ajax技术的核心内容,其目标就是从客户端向服务器发送信息,并接受后者的回传,以求在此过程中创建出更好地打用户体验来. Ajax之前所有的服务器通信都是在服务器上完成的,所以那是若想重绘页面的一部分,要么使用iframe(已淘汰),要么刷新整个页面.这两种方式都称不上是良好的用户体验. Ajax提供了两类服务器通信手段:同步通信和异步通信. 异步通信Ajax比同步通信要常见的多了,大概是