js符號轉碼 在js中對中文和特殊字元轉碼

2021-10-13 04:44:48 字數 1369 閱讀 6822

先貼一下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等於該字元...