`

JavaScript实现URL编码

    博客分类:
  • js
 
阅读更多
<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>

<script language="javascript">
/*这里开始时UrlEncode和UrlDecode函数*/
function UrlEncode(str){
   var ret="";
   var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
   for(var i=0;i<str.length;i++){
    var chr = str.charAt(i);
     var c=str2asc(chr);
     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;
}
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>



================================

方法二:

function   URLEncode(plaintext)   
  {   
  //   The   Javascript   escape   and   unescape   functions   do   not   correspond   
  //   with   what   browsers   actually   do...   
  var   SAFECHARS   =   "0123456789"   +   //   Numeric   
  "ABCDEFGHIJKLMNOPQRSTUVWXYZ"   +   //   Alphabetci   
  "abcdefghijklmnopqrstuvwxyz"   +   
  "-_.!~*'()";   //   RFC2396   Mark   characters   
  var   HEX   =   "0123456789ABCDEF";   
  
  var   encoded   =   "";   
  for   (var   i   =   0;   i   <   plaintext.length;   i++   )   {   
  var   ch   =   plaintext.charAt(i);   
          if   (ch   ==   "   ")   {   
          encoded   +=   "+";   //   x-www-urlencoded,   rather   than   %20   
  }   else   if   (SAFECHARS.indexOf(ch)   !=   -1)   {   
          encoded   +=   ch;   
  }   else   {   
          var   charCode   =   ch.charCodeAt(0);   
  if   (charCode   >   255)   {   
          alert(   "Unicode   Character   '"   +   ch   +   "'   cannot   be   encoded   using   standard   URL   encoding.\n"   +   
                  "(URL   encoding   only   supports   8-bit   characters.)\n"   +   
  "A   space   (+)   will   be   substituted."   );   
  encoded   +=   "+";   
  }   else   {   
  encoded   +=   "%";   
  encoded   +=   HEX.charAt((charCode   >>   4)   &   0xF);   
  encoded   +=   HEX.charAt(charCode   &   0xF);   
  }   
  }   
  }   //   for   
  
  return   encoded;   
  }   
  
  function   URLDecode(encoded)   
  {   
        //   Replace   +   with   '   '   
        //   Replace   %xx   with   equivalent   character   
        var   plaintext   =   "";   
        var   i   =   0;   
        while   (i   <   (encoded.length-2))   {   
                var   ch   =   encoded.charAt(i);   
        if   (ch   ==   "+")   {   
                plaintext   +=   "   ";   
        i++;   
        }   else   if   (ch   ==   "%"   &&   encoded.charAt(i+1)   !=   "%")   {   
                plaintext   +=   unescape(   encoded.substr(i,3)   );   
        i   +=   3;   
  }   else   {   
        plaintext   +=   ch;   
        i++;   
  }   
  }   //   while   
  if   (i   <   encoded.length)   {   
          plaintext   +=   encoded.substr(i,encoded.length-i);   
  }   
        return   unescape(plaintext);   
  }    
分享到:
评论

相关推荐

    纯Javascript脚本实现GBK URL编解码

    纯 Javascript 脚本实现 GBK URL 编码和解码

    unicode格式的字符串进行URL编码

    所以就自己写了一个JavaScript脚本 进行URL编码。原理就是先把unicode字符串转换成BASE64编码文本。然后把base64文本传递到js脚本里面的一个函数内。js函数把base64编码还原成unicode的数据 然后直接调用URL编码...

    javascript url几种编码方式详解

    2. encodeURI()是javascript中真正用来对URL编码的函数。编码整个URL地址,但对特殊含义的符号”;/?:@&=+$,#”,也不进行编码。对应的解码函数是decodeURI()。 3. encodeURIComponent()能编码”;/?:@&=+$,#”这些...

    javascript 对url编码 解码

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponen

    JavaScript中URL编码函数代码

    以下是对变量值的URL编码总结 : 建议用encodeURIComponent() , GET 和POST方式都可以发送过去 。 JavaScript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码...

    用JavaScript实现PHP的urldecode/urldecode函数

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

    【JavaScript源代码】基于网址URL中特殊字符转义编码.docx

    为什么需要Url编码 哪些字符需要编码 US-ASCII字符集中没有对应的可打印字符 保留字符 不安全字符 如何对Url中的非法字符进行编码 Javascript中的escape,encodeURI和encodeURIComponent的区别 安全字符不同 兼容性...

    Delphi Base64编码,javascript解码汉字乱码解决方法演示程序(源代码)

    解决思路:进行Base64前先进行URL编码,在进行URL编码的时候,注意设置不需要SpaceAsPlus选项。 javascript代码: let decodedData = window.atob(JSONStr); let decodedData1 = decodeURIComponent(decodedData)...

    GB18030汉字的GB18030 Unicode URL编码对照表.xlsx

    目前大部分的网站,都是使用的UTF-8编码。例如发送一段二进制到服务器时,服务器规定该二进制内容的编码...附件是GB18030包含的21004个汉字的GB18030编码、Unicode编码、URL编码对照表,可用于解决中文乱码转换恢复。

    易语言-unicode格式的字符串进行URL编码

    所以就自己写了一个JavaScript脚本 进行URL编码 原理就是先把unicode字符串转换成BASE64编码文本 然后把base64文本传递到js脚本里面的一个函数内 js函数把base64编码还原成unicode的数据 然后直接调用URL编码函数对...

    postman-url-encoder:根据WHATWG规范实现URL编码

    邮递员URL编码器 邮递员URL编码器是一个NodeJS模块,提供了各种与URL编码相关的API。 创建该模块是为了实现以消除跨Postman系统对Node URL API的依赖。 这些API可用于编码URL的不同部分(例如主机名,路径,查询)...

    js实现GBK编码,避免默认utf-8编码

    前端页面通过ajax发送请求,参数都是默认使用utf-8编码格式对参数进行url编码,这样的后果就是,当后台页面如果使用gbk编码的话,会出现乱码的情况,然后网上找到一个大神写的gbk.js. 但是里面没有做出详细介绍,这里...

    javascript URL编码和解码使用说明

    使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的 encodeURI函数编码的URL,结果就不一样。 javaScript中的编码方法: escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、...

    javaScript处理URL中特殊符号的处理

    有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    79、原生JavaScript判断字符串是否邮政编码 80、原生JavaScript判断字符是否空NULL 81、原生JavaScript用正则表达式提取页面代码中所有网址 82、原生JavaScript用正则表达式清除相同的数组(低效率) 83、原生...

    JavaScript、C# URL编码、解码总结

    主要介绍了JavaScript、C# URL编码总结,注意包括了encodeURI、decodeURI、encodeURIComponent、decodeURIComponent等使用需要的朋友可以参考下

    JavaScript给url网址进行encode编码的方法

    主要介绍了JavaScript给url网址进行encode编码的方法,实例分析了javascript中encodeURIComponent函数的使用技巧,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics