search
Homephp教程php手册解决ajax获取页面直接显示乱码的方法

大家都知道,xmlhttp在通信时采用的是utf编码,而国内很多网页的信息都是采用gbk编码,所以当直接通过ajax去连接网页,并将获取到的信息直接显示的话就会出现乱码的现象,有些时候无法改变服务器端网页的编码(例如获取别的网站的天气预报信息),在这种时候就只能在客户端通过js做编码的工作了.

下面这段js就是用于将服务器端返回的gbk编码字符串转换为utf编码字符串:


function gb2utf8(data){
  var glbEncode = [];
  gb2utf8_data = data;
  execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");
  var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
  t=t.split("@");
  var i=0,j=t.length,k;
  while(++i     k=t[i].substring(0,4);
    if(!glbEncode[k]) {
      gb2utf8_char = eval("0x"+k);
      execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript");
      glbEncode[k]=escape(gb2utf8_char).substring(1,6);
    }
    t[i]=glbEncode[k]+t[i].substring(4);
  }
  gb2utf8_data = gb2utf8_char = null;
  return unescape(t.join("%")); }

 


有了这段代码后,就可以直接对返回的网页内容进行编码了:
var response=gb2utf8(response.responseBody);


经过这样的转码后所获得的页面内容就不会有乱码现象了;
当然,如果服务器端页面采用的是utf-8的编码那就根本不需要进行编码工作了。



Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
1t内存等于多少GB1t内存等于多少GBFeb 22, 2023 pm 04:55 PM

1t内存等于1024GB。1t内存是指内存的存储容量为“1TB”,而1TB等于1024GB。但这只是计算机原理中理论上的数值,一般在系统显示可用存储空间中会偏少;因为硬盘制造商对硬盘的定义与计算机对硬盘容量的算法不同,导致硬盘标识容量和操作系统中显示的实际容量存在误差。

1g内存是多少MB1g内存是多少MBMar 16, 2023 pm 04:19 PM

1g内存是1024MB。g全称“GB”,中文意思为“吉字节”,而MB是指“兆字节”;GB和MB都是常使用在标示电脑硬盘、存储器等具有较大容量的储存媒介之储存容量,GB和MB换算率约等于1000(1024),即“1GB=1024MB”。

1g等于多少mb内存容量1g等于多少mb内存容量Feb 03, 2023 pm 03:55 PM

1g等于1024MB内存容量。g全称“GB”,中文意思为“吉字节”,是一种十进制的信息计量单位,常使用在标示电脑硬盘、存储器等具有较大容量的储存媒介之储存容量。GB和MB换算率约等于1000(1024),即“1GB = 1024MB”。

10GB的硬盘表示其存储容量为多少10GB的硬盘表示其存储容量为多少Mar 08, 2023 am 10:35 AM

10GB的硬盘表示其存储容量为“一百亿个字节”。字节是计算机信息技术用于计量存储容量的一种计量单位,通常简写为“B”;而gb也叫吉字节,是一种十进制的信息计量单位。硬盘厂商通常以1000进位计算:1KB=1000B、1MB=1000KB、1GB=1000MB;因此换算一下“1GB=1000MB=1000*1000KB=1000*1000*1000B”,即为100亿个字节。

1兆是1G吗1兆是1G吗Feb 27, 2023 pm 03:43 PM

1兆不是1G。1兆是1MB,而1G等于1024MB。MB全称“MByte”,指字节数量,是计算机中的一种储存单位,读作“兆”;而GB是一种十进制的信息计量单位,1GB=1024MB、1GB=1048576KB、1GB=1073741824B。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

data文件夹里面是什么数据data文件夹里面是什么数据May 05, 2023 pm 04:30 PM

data文件夹里面是系统及程序的数据,比如软件的设置和安装包等,Data文件夹中各个文件夹则代表的是不同类型的数据存放文件夹,无论Data文件指的是文件名Data还是扩展名data,都是系统或程序自定义的数据文件,Data是数据保存的备份类文件,一般可以用meidaplayer、记事本或word打开。

20 gb的硬盘表示容量约为多少字节20 gb的硬盘表示容量约为多少字节Feb 28, 2023 am 11:59 AM

20gb的硬盘表示容量约为200亿个字节。gb也叫吉字节,是一种十进制的信息计量单位;字节是计算机信息技术用于计量存储容量的一种计量单位,可简写为“B”。gb和字节的换算关系:1gb等于1024MB,1MB等于1024KB,1KB等于1024B;因此20GB=20*1024MB=20*1024*1024KB=20*1024*1024*1024B=21474836480B。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools