首頁 >web前端 >js教程 >JS解決url傳值出現中文亂碼的另類方法_javascript技巧

JS解決url傳值出現中文亂碼的另類方法_javascript技巧

WBOY
WBOY原創
2016-05-16 17:37:471089瀏覽

 在開發web應用時,很多情況都需要進行前後台的數據交互,有時候我們可能需要把前台的中文數據通過URL的方式傳遞到後台,但此時有個令人頭疼的問題,因為Java中網路傳輸所使用的標準字元集是ISO-8859-1,所以在後台用request.getParameter("message");取得前台傳過來的中文時,得到的還是ISO-8859-1字元集,中文就會出現亂碼現象,好多人的解決方法是在前台傳遞中文之前進行decode,後台再decode一下進行轉換,這樣感覺很是麻煩,難道就沒其他的方式解決嗎?

       苦思冥想了一下:為什麼用表單的方式就可以傳遞中文,而URL的方式就不行了呢?非得用URL傳值的方式才能解決問題嗎?這裡我想到了動態表單,何不用它來解決呢,範例如下:

       假設有下列應用情境:KPI清單頁面中,每個KPI都有產生預警資料的功能,當點選清單中每個KPI產生資料的按鈕時,需要將KPI的id和name傳遞到後台。

       前端對應的js方法:

         以URL傳值的寫法:


使用此方法,且由於KPI名稱多為中文,在後台接收的數值肯定為亂碼。
若用動態產生表單的方式就可以解決:



複製程式碼


程式碼如下: 程式碼如下:
程式碼如下:





function createData(indexId,indexName){
               var urlStr =  "catalogAction.do?action=Createage"xData&Pcata=">>Pcatalog; om ();
                   f.method = 'post';
               document.body.appendChild(f);
               var temp=document.createElement('input');
             temp.value=indexName;
               temp.name='catalogName';            ‧了向後台傳遞中文出現亂碼的情況。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn