前辈们如果有字符串压缩/解压的库请不吝分享给我吧
(字符串包含汉字)
我要的形式大致如下:
str = "这是源字符串,长度无论长短都需要能正常压缩解压,并且压缩之后的字符串仍应该是一个字符串哦"
str = encodeStr(str) 
alert(str)
alert(decodeStr(str))function encodeStr(str){
  ...
}
function decodeStr(str){
  ...
}
谢谢了

解决方案 »

  1.   

    送你一个加密解密压缩的小东东,顺便接10分可用分用于下载。<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <textarea id="txt" style="width:800px;height:500px"></textarea><br>
    <button onclick="javascript:document.getElementById('txt').value=document.getElementById('txt').value.Dencrypt()">加密解密压缩</button><script type=text/javascript>
    String.prototype.Dencrypt = function() {       
           var str = "", i = this.length;      
           while (i--) {
                 str += String.fromCharCode(this.charCodeAt(i)^" ".charCodeAt(i%" ".length));  
           }     
           return str       
    }
    </script>请保存为“UTF-8”格式。
      

  2.   

    完善:去掉空格String.prototype.Dencrypt = function() {       
           var Rstr = "", Ostr = this.replace(/\s*/g, ""), i = Ostr.length;      
           while (i--) {
                 Rstr += String.fromCharCode(Ostr.charCodeAt(i)^" ".charCodeAt(i%" ".length));  
           }     
           return Rstr       
    }
      

  3.   

    哦,上面简单全部去掉空格是错误的,例如“var、typeof、return、function”等后面就不能够去掉空格,得改进正则。
      

  4.   

    加密解压应该是两个函数啊,怎么只有Dencrypt啊?
    麻烦给下完整代码?
      

  5.   

    js 加密 解密?开玩笑吧 ?
    别人把你的js下下来 内裤都看穿了
      

  6.   


    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>js 加密解密</title>
    <base href=http://3http.com/31/pic/>
    </head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">f23={}f23.ts="8ABC7DLO5MN6Z9EFGdeJfghijkHIVrstuvwWSTUXYabclmnopqKPQRxyz01234"
    f23.s52e=function(n)
    {
        var nl=n.length,t=[],a,b,c,x,m=function(y){t[t.length]=f23.ts.charAt(y)},N=f23.ts.length,N2=N*N
        for(x=0;x<nl;x++)
        {
            a=n.charCodeAt(x)
            if(a<N2)m(Math.floor(a/N)),m(a%N)
            else m(Math.floor(a/N2)+5),m(Math.floor(a/N)%N),m(a%N)
        }
        var s=t.join("")
        return String(s.length).length+String(s.length)+s
    }f23.s52d=function(n)
    {
        var c=n.charAt(0)*1
        if(isNaN(c))return ""
        c=n.substr(1,c)*1
        if(isNaN(c))return ""
        var nl=n.length,t=[],a,f,b,x=String(c).length+1,m=function(y){return f23.ts.indexOf(n.charAt(y))},N=f23.ts.length
        if(nl!=x+c)return ""
        while(x<nl)
        {
            a=m(x++)
            if(a<5)f=a*N+m(x)
            else f=(a-5)*N*N+m(x)*N+m(x+=1)
            t[t.length]=String.fromCharCode(f)
            x++
        }
        return t.join("")
    }
    </SCRIPT>
    <textarea id=t1 style="width:100%;height:100">一天两
    分行?
    天三四天?!》nw天</textarea>
    <button onclick=t2.value=f23.s52e(t1.value)>加密↓</button>
    <textarea id=t2 style="width:100%;height:100"></textarea>
    <button onclick=t3.value=f23.s52d(t2.value)>解密↓</button>
    <textarea id=t3 style="width:100%;height:100"></textarea>
    <img src=0/5627a1838913.gif></body></html>
      

  7.   


    该方法既然可以加密也可以解密,你可以试试。<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <textarea id="txt" style="width:800px;height:500px"></textarea><br>
    <button onclick="javascript:document.getElementById('txt').value=document.getElementById('txt').value.Dencrypt()">加密解密压缩</button><script type=text/javascript>
    String.prototype.Dencrypt = function() {       
           var str = "", i = this.length;      
           while (i--) {
                 str += String.fromCharCode(this.charCodeAt(i)^" ".charCodeAt(i%" ".length));  
           }     
           return str       
    }
    </script>