尝试了一下,用以下的编码解码方式,输出来后,最后一位不见了,请问是什么原因?str内容是中文和英文混合的,测试时最后一位是英文
//编码程式: 
function CodeCookie(str) 

 var strRtn="";  for (var i=str.length-1;i>=0;i--) 
 { 
  strRtn+=str.charCodeAt(i); 
  if (i) strRtn+="a"; //用a作分隔符 
 } 
 return strRtn; 
} //解码程式: 
function DecodeCookie(str) 

 var strArr; 
 var strRtn="";  strArr=str.split("a");  for (var i=strArr.length-1;i>=0;i--) 
 strRtn+=String.fromCharCode(eval(strArr[i]));  return strRtn; 

解决方案 »

  1.   

    var ary = [];
    for (var i=str.length-1;i>=0;i--) 
     { 
      strRtn+=str.charCodeAt(i); 
      if (i) ary.push(strRtn); //用a作分隔符 ,最样最好当然是英文的a了
     }  
    return ary.join('a');
      

  2.   

    你用什么字符串测试会丢失?我试了下:
    var a= 'aa啊a啊b';
    DecodeCookie(CodeCookie(a));
    没问题,b没有丢失。
      

  3.   

    为什么不用常见的&分隔呢?