`
zpball
  • 浏览: 919331 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Javascript版 UrlEncode和UrlDecode函数 (URL地址栏参数加密解密)

阅读更多
在做项目的时候需要对(Internet) Search Engine导入链接进行Keyword analysis.

Google  用的是js'encodeURI()函数,可直接用decodeURI()解码。
Baidu 则用的是:
System.Web.HttpUtility.UrlEncode("编码", System.Text.Encoding.GetEncoding("gb2312"))的编码,
解码则需要用到:
System.Web.HttpUtility.UrlDecode("%B1%E0%C2%EB", System.Text.Encoding.GetEncoding("GB2312")));
这个需要用的ASP.NET C#.   以下提供一个Javascript操作进行解码的方法.


<script language="vbscript">   
    Function str2asc(strstr)    
        str2asc = hex(asc(strstr))    
    End Function    
  
    Function asc2str(ascasc)    
        asc2str = chr(ascasc)    
    End Function   
</script>   

<script language="vbscript">
	Function str2asc(strstr) 
    	str2asc = hex(asc(strstr)) 
	End Function 

	Function asc2str(ascasc) 
    	asc2str = chr(ascasc) 
	End Function
</script> 


<SCRIPT language=JavaScript>   
<!--   
//URL加密   
function UrlEncode(str)   
{    
    var ret="";    
    var strSpecial="!\"#$%&()*+,/:;<=>?[]^`{|}~%"; var tt="";   
    for(var i=0;i<str.length;i++)   
    {    
        var chr = str.charAt(i);    
        var c=str2asc(chr);    
        tt += chr+":"+c+"n";    
        if(parseInt("0x"+c) > 0x7f)   
        {    
            ret+="%"+c.slice(0,2)+"%"+c.slice(-2);    
        }   
        else  
        {    
            if(chr==" ")    
                ret+="+";    
            else if(strSpecial.indexOf(chr)!=-1)    
                ret+="%"+c.toString(16);    
            else    
                ret+=chr;    
        }    
    }    
    return ret;    
}    
  
  
//URL解密   
function UrlDecode(str){    
    var ret="";    
    for(var i=0;i<str.length;i++)   
    {    
        var chr = str.charAt(i);    
        if(chr == "+")   
        {    
            ret+=" ";    
        }   
        else if(chr=="%")   
        {    
            var asc = str.substring(i+1,i+3);    
            if(parseInt("0x"+asc)>0x7f)   
            {    
                ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));    
                i+=5;    
            }   
            else  
            {    
                ret+=asc2str(parseInt("0x"+asc));    
                i+=2;    
            }    
        }   
        else  
        {    
            ret+= chr;    
        }    
    }    
    return ret;    
}    
       
//-->   
</SCRIPT> 


<SCRIPT language=JavaScript>
<!--
//URL加密
function UrlEncode(str)
{ 
    var ret=""; 
    var strSpecial="!\"#$%&()*+,/:;<=>?[]^`{|}~%"; var tt="";
    for(var i=0;i<str.length;i++)
    { 
        var chr = str.charAt(i); 
        var c=str2asc(chr); 
        tt += chr+":"+c+"n"; 
        if(parseInt("0x"+c) > 0x7f)
        { 
            ret+="%"+c.slice(0,2)+"%"+c.slice(-2); 
        }
        else
        { 
            if(chr==" ") 
                ret+="+"; 
            else if(strSpecial.indexOf(chr)!=-1) 
                ret+="%"+c.toString(16); 
            else 
                ret+=chr; 
        } 
    } 
    return ret; 
} 


//URL解密
function UrlDecode(str){ 
    var ret=""; 
    for(var i=0;i<str.length;i++)
    { 
        var chr = str.charAt(i); 
        if(chr == "+")
        { 
            ret+=" "; 
        }
        else if(chr=="%")
        { 
            var asc = str.substring(i+1,i+3); 
            if(parseInt("0x"+asc)>0x7f)
            { 
                ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); 
                i+=5; 
            }
            else
            { 
                ret+=asc2str(parseInt("0x"+asc)); 
                i+=2; 
            } 
        }
        else
        { 
            ret+= chr; 
        } 
    } 
    return ret; 
} 
	
//-->
</SCRIPT> 




怎么调用,我想都应该知道了吧........

http://yaojialing.iteye.com/blog/608602
分享到:
评论

相关推荐

    用JavaScript实现UrlEncode和UrlDecode的脚本代码

    在深入理解JavaScript实现UrlEncode和UrlDecode函数的过程中,我们需要理解几个关键点:首先,URL编码和解码在Web开发中是一种常见的需求,用于确保URL中的特殊字符被正确传输。其次,JavaScript提供了一些内置的...

    用JavaScript实现PHP的urldecode/urldecode函数

    这个是 utf-8版本的 js实现 php的 urlencode() 和 urldecode()两个函数的功能。 在传送cookie的时候 在 php端实现 url编码 但要用 js来解码cookie的时候 就出现汉字不能不能识别的问题 这个 js 很好的解决

    urlencode urldecode实现

    `urlencode` 和 `urldecode` 就是用于此目的的两个关键函数。本篇文章将深入探讨这两个概念及其在Xcode中使用C++混编的实现。 `urlencode` 是一种编码方法,其目的是将非ASCII字符或者在URL中具有特殊含义的字符...

    urlEncode or urlDecode

    在IT行业中,`urlEncode` 和 `urlDecode` 是两个非常关键的概念,它们主要用于处理URL(统一资源定位符)中的特殊字符。理解这两个概念对于网页开发、数据传输以及网络编程至关重要。 `urlEncode` 是一个过程,它将...

    用JavaScript实现PHP的urlencode与urldecode函数

    在Web开发中,URL编码(urlencode)和URL解码(urldecode)是常见的需求。这主要是为了确保URL的正确传输和使用,尤其是在URL的路径或查询字符串中包含特殊字符时。PHP中的urlencode和urldecode函数是处理这一需求的...

    PB 进制转换 url编码 urlencode urldecode 数组排序

    自己写的,可能有bug,请大家一块学习 环境为PB12 函数(及参数) 作用 arraysort 对一维数组进行排序 ...urldecode 将指定字符串以进行指定字符集url解码 urlencode 将指定字符串以进行指定字符集url编码 涨价了,哈哈

    php自定义urlencode,urldecode函数实例

    总结来说,自定义urlencode和urldecode函数可以帮助开发者解决在特定场景下遇到的问题,使得URL编码和解码过程更符合项目的实际需求。通过本文提供的代码实例,我们可以学习如何实现这样的自定义函数,并在自己的...

    ASP中实现的URLEncode、URLDecode自定义函数__1.docx

    使用自定义的URLEncode和URLDecode函数,我们可以确保在POST请求中传递XML数据时,数据能够正确地编码和解码,从而避免乱码问题。但需要注意,如果数据量非常大,这种编码解码过程可能会增加一定的处理时间,影响...

    Python3中urlencode和urldecode的用法详解

    今天小编就为大家分享一篇Python3中urlencode和urldecode的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    ASP.NET url参数传递加密及解密方法

    ASP.NET URL参数传递加密及解密是Web应用程序中常见的安全措施,主要目的是保护用户数据的隐私,防止中间人攻击和数据篡改。在ASP.NET框架中,我们可以利用内置的加密解密工具来实现这一功能。以下是一些关于如何在...

    ASP中实现的URLEncode、URLDecode自定义函数

    总体而言,自定义的URLEncode和URLDecode函数在ASP开发中提供了更大的灵活性,允许开发者根据实际情况对数据进行更精细的处理。在处理XML或HTML数据时尤其有用,因为它们可以避免不必要的编码,从而保持数据的完整性...

    易语言URL编解码

    URL编解码主要包括两个部分:URLEncode和URLDecode。URLEncode是将URL中的非字母数字字符转换为ASCII码的百分号编码形式,如空格通常会被转换为"%20"。这样做的原因是URL中不能包含某些字符,如空格、引号等,它们...

    PB字符串加密、解密函数

    在实际应用中,PB字符串加密和解密函数通常会结合使用,比如先使用非对称加密算法加密一个会话密钥,然后使用这个密钥执行对称加密来保护大量数据。这样的混合策略既保证了速度,又确保了安全性。 编写PB加密函数时...

    UrlEncodeUrlDecodeUrl解码Url编码工具

    UrlEncode和UrlDecode在实际应用中非常广泛,例如在HTTP请求参数、表单提交、链接重写等场景。开发者通常会使用编程语言内置的函数或库来处理URL编码和解码,但这个工具提供了一个直观且便捷的界面,使得非程序员也...

    UrlEncodeDecode解码编码工具(双向)

    在编程语言中,如JavaScript、Python、Java等,都有内置的函数来实现UrlEncode和UrlDecode的操作,但这些函数通常只适用于单一语言环境。而独立的工具则提供了跨平台、跨语言的解决方案,无论你使用何种技术栈,都...

    php urlencode()与urldecode()函数字符编码原理详解

    在Web开发中,正确地使用urlencode() 和 urldecode() 函数,可以有效避免由于URL参数编码不兼容导致的错误。例如,在使用GET请求方式提交表单时,如果不正确地对中文或特殊字符进行编码,可能会在服务器端接收到错误...

    Javascript UrlDecode函数代码

    `UrlEncode`和`UrlDecode`函数就是用于处理URL字符串的编码和解码过程。在给定的代码中,作者提供了两个自定义的函数:`ShengUtils.encode`和`ShengUtils.decode`,分别实现了这个功能。 `ShengUtils.encode`函数的...

Global site tag (gtag.js) - Google Analytics