首頁 web前端 js教程 JavaScript中常見的問題解決方法(亂碼,IE快取,代理)_javascript技巧

JavaScript中常見的問題解決方法(亂碼,IE快取,代理)_javascript技巧

May 16, 2016 pm 05:11 PM
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;
}

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

Linux如何查看和刷新dns快取 Linux如何查看和刷新dns快取 Mar 07, 2024 am 08:43 AM

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

Oracle導入中文資料時出現亂碼怎麼解決? Oracle導入中文資料時出現亂碼怎麼解決? Mar 10, 2024 am 09:54 AM

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

PHP中文檔案名稱亂碼問題處理技巧 PHP中文檔案名稱亂碼問題處理技巧 Feb 27, 2024 pm 02:18 PM

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

Linux終端機亂碼問題的處理方法 Linux終端機亂碼問題的處理方法 Mar 20, 2024 pm 03:12 PM

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

Win11開機顯示亂碼怎麼解決? Win11開機亂碼的兩種解決方法 Win11開機顯示亂碼怎麼解決? Win11開機亂碼的兩種解決方法 Feb 29, 2024 pm 12:16 PM

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

Oracle資料庫中文亂碼的解決策略與技巧 Oracle資料庫中文亂碼的解決策略與技巧 Mar 08, 2024 am 09:48 AM

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

CPU、記憶體、快取的關係詳細解釋! CPU、記憶體、快取的關係詳細解釋! Mar 07, 2024 am 08:30 AM

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

PHP APCu 的進階用法:解鎖隱藏的力量 PHP APCu 的進階用法:解鎖隱藏的力量 Mar 01, 2024 pm 09:10 PM

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

See all articles