js頁面跳轉 URL含中文造成亂碼

2021-07-31 22:01:22 字數 1081 閱讀 2977

當在位址列中傳遞引數時,伺服器端獲取的引數值為亂碼。

解決:1、使用js將中文轉為ascii碼

var param = encodeuri("中文引數");

備註:encodeuri該方法的目的是對 uri 進行完整的編碼,因此對以下在 uri 中具有特殊含義的 ascii 標點符號,encodeuri() 函式是不會進行轉義的:;/?:@&=+$,#

複製**

**示例:

alert(encodeuri("我是中文"));  

alert(decodeuri(encodeuri("我是中文"))); 

2、server端接收傳遞過來的引數

string param = request.getparamter("param");

現在的內容param是亂碼。

3、對接收的引數進行轉碼

stringt newparam = new string(param.getbyte("iso-8859-1"),"utf-8");

備註:接收的引數一定要以iso-8859-1獲取位元組,然後根據網頁的編碼格式new乙個新的字串,這裡使用的是utf-8編碼

什麼是iso?

iso-8859-1編碼是單位元組編碼,向下相容ascii,其編碼範圍是0x00-0xff,0x00-0x7f之間完全和ascii一致,0x80-0x9f之間是控制字元,0xa0-0xff之間是文字元號。

iso-8859-1收錄的字元除ascii收錄的字元外,還包括西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應的文字元號。歐元符號出現的比較晚,沒有被收錄在iso-8859-1當中。

因為iso-8859-1編碼範圍使用了單位元組內的所有空間,在支援iso-8859-1的系統中傳輸和儲存其他任何編碼的位元組流都不會被拋棄。換言之,把其他任何編碼的位元組流當作iso-8859-1編碼看待都沒有問題。這是個很重要的特性,mysql資料庫預設編碼是latin1就是利用了這個特性。ascii編碼是乙個7位的容器,iso-8859-1編碼是乙個8位的容器。

latin1是iso-8859-1的別名,有些環境下寫作latin-1。

js頁面跳轉重新整理

location.replace location.href window.location.href 01.html ie有效,ff無效 window.location.href 01.html ie有效,ff有效效 window.location 01.html ie有效 ff有效 locati...

js頁面跳轉整理

js方式的頁面跳轉 1.window.location.href方式 2.window.n igate方式跳轉 3.window.loction.replace方式實現頁面跳轉,注意跟第一種方式的區別 有3個jsp頁面 1.aspx,2.aspx,3.aspx 進系統預設的是1.aspx,當我進入2...

url含中文的解決方法

例如 乙個a標籤 部門dd.name是中文,位址列顯示正常,但是傳到action裡列印出來是亂碼,過濾器,request.setchar.utf 8 等都試過了都解決不了 這中情況下可用下面的解決辦法 url deptname encodeuri encodeuri deptname 後台採用 st...