Rumah 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的编码那就根本不需要进行编码工作了。



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

1t memori sama dengan berapa GB? 1t memori sama dengan berapa GB? Feb 22, 2023 pm 04:55 PM

Memori 1t adalah sama dengan 1024GB. Memori 1t merujuk kepada kapasiti storan memori "1TB", dan 1TB bersamaan dengan 1024GB. Tetapi ini hanyalah nilai teori berdasarkan prinsip komputer Secara amnya, ruang storan yang tersedia yang dipaparkan oleh sistem akan menjadi kurang kerana definisi cakera keras pengeluar cakera adalah berbeza daripada algoritma komputer untuk kapasiti cakera keras. kapasiti pengenalan cakera keras dan nombor yang dipaparkan dalam sistem pengendalian mungkin berbeza-beza.

Berapa MB ialah 1g ingatan? Berapa MB ialah 1g ingatan? Mar 16, 2023 pm 04:19 PM

Memori 1g ialah 1024MB. g bermaksud "GB", yang bermaksud "gigabait" dalam bahasa Cina, dan MB merujuk kepada "megabait" GB dan MB kedua-duanya biasanya digunakan untuk menunjukkan kapasiti penyimpanan cakera keras komputer, memori dan media storan lain dengan kapasiti yang lebih besar kadar penukaran antara GB dan MB adalah lebih kurang sama dengan 1000 (1024), iaitu, "1GB=1024MB".

1g bersamaan dengan berapa banyak MB kapasiti memori 1g bersamaan dengan berapa banyak MB kapasiti memori Feb 03, 2023 pm 03:55 PM

1g bersamaan dengan kapasiti memori 1024MB. Nama penuh g ialah "GB", yang bermaksud "gigabait" dalam bahasa Cina Ia adalah unit perpuluhan ukuran maklumat dan sering digunakan untuk menunjukkan kapasiti storan pemacu keras komputer, memori dan media storan lain dengan kapasiti yang lebih besar. Kadar penukaran antara GB dan MB adalah lebih kurang sama dengan 1000 (1024), iaitu, "1GB = 1024MB".

Adakah 1 megabit 1G? Adakah 1 megabit 1G? Feb 27, 2023 pm 03:43 PM

1 trilion bukan 1G. 1 megabait ialah 1MB, dan 1G bersamaan dengan 1024MB. Nama penuh MB ialah "MByte", yang merujuk kepada bilangan bait Ia adalah unit storan dalam komputer, disebut sebagai "mega" dan GB ialah unit perpuluhan ukuran maklumat, 1GB=1024MB, 1GB=1048576KB, 1GB=1073741824B.

Apakah kapasiti storan cakera keras 10GB? Apakah kapasiti storan cakera keras 10GB? Mar 08, 2023 am 10:35 AM

Pemacu keras 10GB mewakili kapasiti storan "10 bilion bait." Byte ialah unit ukuran yang digunakan oleh teknologi maklumat komputer untuk mengukur kapasiti storan, biasanya disingkatkan sebagai "B", juga dipanggil gigabait, ialah unit perpuluhan bagi pengukuran maklumat. Pengeluar cakera keras biasanya mengira dalam tempat perpuluhan: 1KB=1000B, 1MB=1000KB, 1GB=1000MB oleh itu, jika anda menukar "1GB=1000MB=1000*1000KB=1000*1000*1000B", ia adalah 10 bilion bait;

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

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

Apakah data yang terdapat dalam folder data? Apakah data yang terdapat dalam folder data? May 05, 2023 pm 04:30 PM

Folder data mengandungi data sistem dan program, seperti tetapan perisian dan pakej pemasangan Setiap folder dalam folder Data mewakili jenis folder storan data yang berbeza, tidak kira sama ada fail Data merujuk kepada nama fail Data atau sambungan data , semuanya adalah fail data yang disesuaikan oleh sistem atau program Data ialah fail sandaran untuk penyimpanan data Secara umumnya, ia boleh dibuka dengan meidaplayer, notepad atau word.

10gb bersamaan dengan berapa banyak bait 10gb bersamaan dengan berapa banyak bait Feb 23, 2023 pm 04:49 PM

10GB bersamaan dengan 10737418240 bait (B). Byte ialah unit ukuran yang digunakan oleh teknologi maklumat komputer untuk mengukur kapasiti storan, biasanya disingkatkan sebagai "B". GB juga dipanggil gigabait, iaitu unit perpuluhan ukuran maklumat 1GB=1024MB, 1MB=1024KB, 1KB=1024B (bait), oleh itu, tukarkan "10GB=10240MB=10485760KB=10737418240B".

See all articles