備忘:解決ajax獲取頁面直接顯示亂碼的方法





























有了這段代碼后,就可以直接對返回的網頁內容進行編碼了:
var response=gb2utf8(response.responseBody);
經過這樣的轉碼后所獲得的頁面內容就不會有亂碼現象了;
當然,如果服務器端頁面采用的是utf-8的編碼那就根本不需要進行編碼工作了。
posted on 2006-08-15 11:04 BlueDavy 閱讀(5414) 評論(10) 編輯 收藏 所屬分類: Java
理論不懂就實踐,實踐不會就學理論!
posted on 2006-08-15 11:04 BlueDavy 閱讀(5414) 評論(10) 編輯 收藏 所屬分類: Java
其實只要服務器返回的數據頭聲明了
<?xml version="1.0" encoding="gb2312"?>
xmlhttp(request)控件應該就可以正確解碼了。
編碼可以參考一下:
http://www.aygfsteel.com/emu/articles/31283.html
http://www.aygfsteel.com/emu/articles/31756.html 回復 更多評論
@emu
1、樓主已經說了
“有些時候無法改變服務器端網頁的編碼(例如獲取別的網站的天氣預報信息),在這種時候就只能在客戶端通過js做編碼的工作了,”
2、這個方法在firefox應該不行,所以ajax的編碼問題在瀏覽器里還是不能完全解決,只有等瀏覽器擴展,并且統一處理方法了。
execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript"); 回復 更多評論
@一農
在firefox下非常簡單,可以調用xmlhttprequest來強制使用GBK編碼,這樣xmlhttprequest在發起請求和接收響應時就不再采用UTF-8了:
xmlHttpRequest.overrideMimeType("text/html;charset= gbk"); 回復 更多評論
@一農
1 “有些時候無法改變服務器端網頁的編碼(例如獲取別的網站的天氣預報信息),在這種時候就只能在客戶端通過js做編碼的工作了,”
這種情況下也無法通過客戶端(瀏覽器)來做js編碼(應為解碼),因為有跨域限制,雖然網頁可以用腳本設置document.domain,可是xmlhttp無法設置。如果用服務器程序建立http連接來獲取這些第三方數據的話,也應該用后臺服務器支持的解碼方法而不是自己編碼。
回復 更多評論
to:一農
能具體給我說一說怎么弄嘛,我遇到這個問題沒解決出來,很是惱火哦! 回復 更多評論
我是用js文件調用頁面..我的頁面在單獨的情況下可以顯示沒有亂碼...但是在用js調用時就出現亂碼....是什么問題.....那位大俠幫幫我啊.... 回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
![]() |
||
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關文章:
|
||