JavaScript中常見的問題解決方法(亂碼,IE快取,代理)_javascript技巧
解決AJAX中文亂碼常用的兩種方法
1. 在客戶端進行encodeURI(utf-8也可以不做,預設),在伺服器端將iso-8859-1編碼轉為utf-8編碼
2.在客戶端進行兩次encodeURI,在伺服器端進行一次轉換。
第2種方法能解決問題的原因:
進行兩次轉換後,在第一次getparameter方法中進行第一次解碼,因為解出來的是英文(第一次encode之後的結果),所以不會出問題;第二次使用URLDecoder的decode方法,所以能正常解決這個問題。需要注意的是,在decode方法中需要指定解碼格式為"utf-8"。很多中文平台使用的並不是utf-8(我猜應該是gb2312),所以decode的預設轉換不一定是utf-8。
之所以在客戶端進行兩次編碼而在伺服器只進行一次解碼,我猜是Tomcat的緣故。 Tomcat為了讓程式設計師編程方便(get和post用一樣的程式碼),所以會自動對post的編碼進行解碼,所以在伺服器端就少了一次手寫的解碼語句。之所以還要再進行一次編碼解碼,是因為Tomcat自動解碼的操作並不一定是按照我們希望的編碼解的,但英文等字符無論在什麼平台上解出的碼都是一樣的,因此可以讓Tomcat自動解讀出第一次編碼後的結果,再手動來解譯encodeURI一次的代碼,就可以得到自己所需的格式。
補充:現在又觀察了一下瀏覽器的行為,覺得不是Tomcat的緣故,因為在瀏覽器裡的顯示的是中文,而不是編碼後的東西,對於這些個編碼問題現在是一頭霧水,希望知道這方面知識的朋友不吝賜教!
解決IE快取的問題
加上時間戳,並且要檢查?
解決代理問題
要將?轉為$
範例程式碼:
function verify() {
function verify() { //解決中文亂麻問題的方法1,頁面端發出的資料作一次encodeURI,伺服器段使用new String(old.getBytes("iso8859-1"),"UTF-8");
//解決中文亂麻問題的方法2,頁面端發出的資料作兩次encodeURI,伺服器段使用URLDecoder.decode(old,"UTF-8")
var url = "AJAXServer?name=" encodeURI(encodeURI($ ("#userName").val()));
url = convertURL(url);
$.get(url,null,function(data){
html(data);
});
}
//給url位址增加時間戳,騙過瀏覽器,不讀取快取
function convertURL(url) {
//取得時間戳記
var timstamp = (new Date()).valueOf();
//將時間戳資訊拼接到url上
//url indexOf("?") >= 0) {
url = url "&t=" timstamp;
} else {
return url;
}

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

DNS(DomainNameSystem)是網際網路中用來將網域名稱轉換為對應IP位址的系統。在Linux系統中,DNS快取是一種將網域名稱和IP位址的映射關係儲存在本地的機制,可提高網域解析速度,減輕DNS伺服器的負擔。 DNS快取允許系統在之後存取相同網域名稱時快速檢索IP位址,而不必每次都向DNS伺服器發出查詢請求,從而提高網路效能和效率。本文不念將和大家一起探討如何在Linux上查看和刷新DNS緩存,以及相關的詳細內容和範例程式碼。 DNS快取的重要性在Linux系統中,DNS快取扮演關鍵的角色。它的存在

標題:解決Oracle導入中文資料亂碼問題的方法及代碼範例在Oracle資料庫中導入中文資料時,經常會出現亂碼的情況,這可能是由於資料庫字元集設定不正確或導入過程中出現編碼轉換問題所致。為了解決這個問題,我們可以採取一些方法來確保導入的中文資料能夠正確顯示。以下是一些解決方案及具體的程式碼範例:一、檢查資料庫字元集設定在Oracle資料庫中,字元集的設定對於

PHP中文檔案名稱亂碼問題處理技巧在開發過程中,常常會遇到處理中文檔案名稱亂碼的問題,尤其是在處理使用者上傳的檔案時。在PHP中,如何正確處理檔案名稱亂碼是比較常見且重要的問題。本文將介紹一些處理中文檔案名稱亂碼問題的技巧,並提供具體的程式碼範例,幫助讀者更好地應對這個挑戰。問題描述當使用者上傳檔案時,有時會出現中文檔案名稱亂碼的狀況。這是因為不同的作業系統和瀏覽器對

Linux終端機亂碼問題的處理方法在使用Linux系統時,有時在終端機中顯示的文字會出現亂碼,這給我們使用終端機帶來了不便,需要及時處理。本文將為大家介紹一些常見的Linux終端機亂碼問題的處理方法,同時提供具體的程式碼範例。問題一:終端中文亂碼終端中文亂碼通常是因為終端的字元編碼設定不正確所導致的。我們可以透過修改終端機的字元編碼設定來解決這個問題。 #查看目前終端的

Win11是微軟最新的作業系統,但有些使用者在開機時可能會遇到顯示亂碼的問題,這會影響系統的正常使用,本文將介紹一些解決這個問題的方法。方法一:1、按【Win+S】組合鍵,或點選工作列上開始圖示旁的【搜尋圖示】,在開啟的Windows搜尋中,搜尋框輸入【控制台】,然後點選【開啟】系統給出的最佳匹配控制面板應用;2、控制面板窗口,切換到【類別】查看方式,然後點擊【時鐘和區域-區域】;3、區域窗口,切換到【管理】選項卡,然後點擊【更改系統區域設定】;4、【取消勾選】Beta版:使用Unicode

Oracle資料庫中文亂碼的解決策略與技巧在實際的資料庫應用程式中,許多開發者或管理員可能會遇到Oracle資料庫中文亂碼的問題。當資料庫中的資料出現亂碼時,不僅影響資料的正確性和可讀性,還會為系統帶來許多問題。本文將結合具體的程式碼範例,介紹Oracle資料庫中文亂碼的解決策略與技巧,幫助讀者更能理解並解決這個問題。一、亂碼產生原因字元集不一致:資料庫連接與應

CPU(中央處理器)、記憶體(隨機存取記憶體)以及快取之間存在著緊密的相互作用,它們合力構成了電腦系統的關鍵組成部分。它們之間的協調配合,確保了電腦的正常運作和高效性能。 CPU作為電腦的大腦,負責執行各種指令和資料處理;記憶體則用於臨時儲存資料和程序,提供了快速的讀寫存取速度;而快取則起到了緩衝作用,加快了資料的存取速度,提高了電腦的CPU是電腦的核心元件,負責執行各種指令、算術運算和邏輯操作。它被稱為電腦的"大腦",承擔著處理資料和執行任務的重要角色。記憶體是電腦中重要的儲存設備,

PHPAPCu(替代php快取)是加速PHP應用程式的opcode快取和資料快取模組。理解其高級功能對於充分利用其潛力至關重要。 1.批次操作:APCu提供批次操作方法,可同時處理大量鍵值對。這對於大規模快取清除或更新非常有用。 //批次取得快取鍵$values=apcu_fetch(["key1","key2","key3"]);//批次清除快取鍵apcu_delete(["key1","key2","key3"]);2 .設定快取過期時間:APCu允許您為快取項目設定過期時間,以便在指定時間後自
