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

解决ajax获取页面直接显示乱码的方法

Jun 21, 2016 am 08:50 AM
data gb quot

大家都知道,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的编码那就根本不需要进行编码工作了。



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
1t記憶體等於多少GB 1t記憶體等於多少GB Feb 22, 2023 pm 04:55 PM

1t記憶體等於1024GB。 1t記憶體是指記憶體的儲存容量為“1TB”,而1TB等於1024GB。但這只是電腦原理中理論上的數值,一般在系統顯示可用儲存空間中會偏少;因為硬碟製造商對硬碟的定義與電腦對硬碟容量的演算法不同,導致硬碟標識容量和作業系統中顯示的實際容量存在誤差。

1g記憶體是多少MB 1g記憶體是多少MB Mar 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。

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=21024KB=20*1024*1024*1024B=2107483640B。

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

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

10gb等於多少位元組 10gb等於多少位元組 Feb 23, 2023 pm 04:49 PM

10GB等於10737418240位元組(B)。位元組是電腦資訊技術用於計量儲存容量的一種計量單位,通常簡寫為“B”。 gb也叫吉字節,是一種十進制的資訊計量單位,1GB=1024MB,而1MB=1024KB,1KB=1024B(字節);因此換算一下「10GB=10240MB=10485760KB=10737418400737418402BB」。

See all articles