文档章节

ajax请求后返回中文乱码问题

p
 pf12345
发布于 2013/10/15 22:24
字数 342
阅读 190
收藏 0

前两天工作中,要提取网络上服务器里一个text文档,但是在使用ajax请求后,返回的结果却是一堆乱码,根本无法解决,其布局可如下示例:

也就是通过ajax.html请求ajax.txt文件,因为txt文件在编辑器外面创建,使其编码集非utf-8,则请求后会产生乱码,结果如下:

在通过网上看了无数帖子,看了有通过修改ajax请求时request的编码集,有说通过修改response时的编码级,但最后试完了,下面一个函数可以直接轻松解决:

  function loadPage(url){
        var xh=window.Event?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")
        xh.open("GET",url,true)
        if(window.Event)
            xh.overrideMimeType("text/xml;charset=gb2312")
        xh.onreadystatechange=function(){
            if(xh.readyState!=4)
                return
            var v
            v=window.Event?xh.responseText:window.gb2utf8(xh.responseBody)
            alert(v)
        }
        window.gb2utf8=function(data){
            var glbEncode=[],t,i,j,len
            gb2utf8_data=data
            execScript("gb2utf8_data = MidB(gb2utf8_data, 1)+' '", "vbscript")
            t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2")
            t=t.split("@")
            i=0
            len=t.length
            while(++i<len){
                j=t[i].substring(0,4)
                if(!glbEncode[j]) {
                    gb2utf8_char = eval("0x"+j)
                    execScript("gb2utf8_char=Chr(gb2utf8_char)","vbscript")
                    glbEncode[j]=escape(gb2utf8_char).substring(1,6)
                }
                t[i]=glbEncode[j]+t[i].substring(4)
            }
            gb2utf8_data=gb2utf8_char=null
            return unescape(t.join("%")).slice(0,-1)
        }
        xh.send(null)
    }
    loadPage("ajax.txt");
只需要调用loadPage函数,传入你需要请求的地址,而返回值则会通过alert(v)打印出来。结果如下:


© 著作权归作者所有

p
粉丝 17
博文 12
码字总数 10328
作品 0
成都
私信 提问
Java URL传参中文乱码问题

我们经常会遇到这样的场景:在URL中传递参数,如果该参数为中文,如果设置不当,会出现乱码问题。 URL传参所使用的编码为服务器中设置的编码,而ajax请求的编码为页面编码。 如果不设置tomca...

程序猿之小菜鸟
2015/08/28
623
0
请教SpringMVC不响应content导致页面乱码的问题

乱码是不确定某个页面的,在运行过程中可能在浏览某个页面的时候就乱码出来了。乱码的时候查询响应头发现没有了Content相关的内容也就是下面的三个: 直接变成了: 没有了Content相关的内容导...

小爷胡汉三
2015/05/19
554
6
jquery的ajax()函数传值中文乱码解决方法介绍

jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下 代码如下: $.ajax({  dataType : ‘json',type : ‘POST',url :‘http://localhost/test/test.do',data : {id: 1, typ......

mdoo
2015/10/07
349
1
XMLHttpRequest对象的扩展问题

解决XMLHttpRequest请求的缓存问题:增加时间戳 解决AJAX应用的中文问题: 请求数据中包含中文,服务器端程序接收错误导致乱码 1.png 响应数据中包含中文,编码设置错误导致浏览器中看到的结...

小小蒜头
2017/11/14
0
0
JQuery中Ajax的Post提交中文乱码的解决方案(转)

引言: 在JQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢? 问题的引入: var regid = $('#oregion').combobox('getValue'); //var sname = $('#sname').......

Atom_me
2015/06/02
217
2

没有更多内容

加载失败,请刷新页面

加载更多

STM32进阶之串口环形缓冲区实现

队列的概念 在此之前,我们来回顾一下队列的基本概念: 队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO)的线性表,只允许在一端插入(入队),在另一端进行删除(出队)。 队列...

杰杰1号
22分钟前
9
0
设计模式-建造者模式

建造者模式 定义 将一个复杂对象的构建和它的表示分离,使得同样的构建过程创建出不同的表示。这句话理解起来优点抽象,我们打个简单的比方吧,中国人都喜欢做菜,做菜的时候后会放很多配料...

木本本
25分钟前
9
0
017、xml版本代码生成器配置

1、在pom.xml文件中增加mybatis-generator-maven-plugin插件 <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>......

北岩
38分钟前
7
0
用jQuery-Easy-UI编写注册页面

本文转载于:专业的前端网站➮用jQuery-Easy-UI编写注册页面 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content=......

前端老手
46分钟前
5
0
Git ssh配置

生成密钥对 ssh-keygen -t rsa -C "email@email.com"邮箱替换自己邮箱在地址C:\Users\账户\.ssh下,id_rsa、id_rsa.pub两个文件复制文件id_rsa.pub内容到github\gitlab的Settings-> SSH ......

JUKE
53分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部