先貼一下js中關於轉碼的一點知識:
js對文字進行編碼涉及3個函式:escape,encodeuri,encodeuricomponent,相應3個解碼函式:unescape,decodeuri,decodeuricomponent
1、 傳遞引數時需要使用encodeuricomponent,這樣組合的url才不會被#等特殊字元截斷。
例如:2、 進行url跳轉時可以整體使用encodeuri
3、 js使用資料時可以使用escape
例如:蒐藏中history紀錄。
4、 escape對0-255以外的unicode值進行編碼時輸出%u****格式,其它情況下escape,encodeuri,encodeuricomponent編碼結果相同。
最多使用的應為encodeuricomponent,它是將中文、韓文等特殊字元轉換成utf-8格式的url編碼,所以如果給後台傳遞引數需要使用encodeuricomponent時需要後台解碼對utf-8支援(form中的編碼方式和當前頁面編碼方式相同)
escape不編碼字元有69個:*,+,-,.,/,@,_,0-9,a-z,a-z
encodeuri不編碼字元有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,a-z
encodeuricomponent不編碼字元有71個:!, ',(,),*,-,.,_,~,0-9,a-z,a-z
在管理系統的**如下:
function getmedia()
var req=splitgetrequest();
var type_t=req['type'];
var medianame=req['medianame'];
jquery.ajax({
//由於中文的原因
datatype:"json",
data:"",
type:"get",
success:function(data,type){
ret = data.ret;
if (ret != 0){
return;
if(data.medianame != medianame) {
alert("error:medianame is error");
gettypelist();
jquery("#type").val(type_t);
error:function(xhr)
alert("error:"+xhr.status);
由於medianame是中文,所以url直接用
會出現問題,因此使用了encodeuri.
對於medianame = 空的.txt,真實的發包就是
ok,就這樣~
JS 對中文進行轉碼防止亂碼
var breed type escape breedtype 進行轉碼 diag.url test add.jsp?breed type breed type 彈出乙個新的頁面 var request new object request getrequest var breedtype requ...
JS中對URL進行轉碼與解碼
1.escape 和 unescape escape 不能直接用於url編碼,它的真正作用是返回乙個字元的unicode編碼值。採用unicode字符集對指定的字串除0 255以外進行編碼。所有的空格符 標點符號 特殊字元以及更多有聯絡非ascii字元都將被轉化成 xx格式的字元編碼 xx等於該字元...
JS中對URL進行轉碼與解碼
1.escape 和 unescape escape 不能直接用於url編碼,它的真正作用是返回乙個字元的unicode編碼值。採用unicode字符集對指定的字串除0 255以外進行編碼。所有的空格符 標點符號 特殊字元以及更多有聯絡非ascii字元都將被轉化成 xx格式的字元編碼 xx等於該字元...