`

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);   
  }    
分享到:
评论

相关推荐

    JS实现URL编码转换中文

    ### JS实现URL编码转换中文 在Web开发过程中,经常需要处理URL中的特殊字符,特别是中文字符。由于URL传输限制及浏览器解析原因,中文等非ASCII字符需要被编码为特定格式才能在网络上传输。本文将详细介绍如何使用...

    纯Javascript脚本实现GBK URL编解码

    总结来说,纯JavaScript实现GBK URL编解码涉及到的关键技术点包括GBK编码和解码、URL编码和解码,以及可能的Base64编码和解码。实际实现时,可能需要结合第三方库或自定义函数来处理GBK编码,同时充分利用JavaScript...

    javascript 对url编码 解码

    JavaScript 对 URL 编码解码 JavaScript 中对 URL 编码和解码涉及到六个函数:escape、encodeURI、encodeURIComponent、unescape、decodeURI 和 decodeURIComponent。这六个函数的使用场景和特点分别是: escape ...

    URL编码 URL编码

    在实际编程中,大多数编程语言都提供了内置函数来自动进行URL编码和解码,如JavaScript的`encodeURIComponent()`和`decodeURIComponent()`,Python的`urllib.parse.quote()`和`urllib.parse.unquote()`等。...

    一个简单url编码解码

    这个名为“一个简单url编码解码”的项目,就是为新手提供了一个理解和实践URL编码与解码机制的实例。 URL编码是根据RFC 3986标准进行的,主要使用百分号(%)表示非ASCII字符或特殊字符的ASCII十六进制值。例如,...

    url编码转换器

    在实际应用中,URL编码不仅限于手动操作,许多编程语言如JavaScript、Python、Java等都提供了内置函数来自动处理URL编码和解码。例如,JavaScript中的`encodeURIComponent()`和`decodeURIComponent()`函数,可以方便...

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

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

    urlcode解码-HTTP:URL编码解码

    本文将深入探讨URL编码与解码的概念,以及如何在编程中实现这些操作。 URL编码是将URL中可能引起问题的字符转换为ASCII字符集的等效百分号编码。这包括空格、非ASCII字符以及某些特殊字符,如大括号、引号、尖括号...

    javascript url几种编码方式详解

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

    URL编码解码器

    URL编码遵循统一资源标识符(URI)的规则,其中最常用的是基于百分号(%)的编码方法。每个非ASCII或特殊字符会被替换为"%xy"的形式,其中xy是该字符在UTF-8编码中的两个字节的十六进制表示。例如,空格字符(ASCII...

    url编码

    在一些开源项目中,可以查看到URL编码的具体实现代码,如JavaScript的实现可能涉及到 `Buffer` 对象和 `toString('hex')` 方法。 **编码与解码**: 1. **编码**:将非ASCII字符或特殊字符转换为百分号编码的过程。...

    url编码解码源代码

    在IT行业中,URL编码(又称为百分号编码)是一种用于在网络应用中表示非ASCII字符或特殊字符的标准。这种编码方式是HTTP协议的一部分,确保数据可以在URL中安全传输。本话题将详细探讨“url编码解码源代码”,以及...

    解析URL和文件的编码方式

    例如,Apache Commons Lang库提供了`StringEscapeUtils`类,用于对字符串进行编码和解码,包括URL编码。此外,Java的`java.net.URLDecoder`和`java.net.URLEncoder`类也提供了URL编码和解码的功能。 文件的编码方式...

    codeURL编码解码工具

    本文将详细讲解"codeURL编码解码工具"的相关知识点,包括URL编码的原理、用途以及如何使用这类工具进行编码和解码。 URL(Uniform Resource Locator)即统一资源定位符,是互联网上的资源地址。它由协议类型、主机...

    URL解码-编码器URL解码-编码器

    在实际操作中,开发者通常会使用编程语言提供的内置函数进行URL编码和解码,例如JavaScript的`encodeURIComponent()`和`decodeURIComponent()`,Python的`urllib.parse.quote()`和`urllib.parse.unquote()`,Java的`...

    URL编码解码工具 反向分析URL地址

    8. **安全考量**:URL编码也可以用于防止跨站脚本攻击(XSS),通过编码恶意输入,可以避免这些输入被浏览器错误解析为HTML或JavaScript代码,从而提高应用的安全性。 总结起来,URL编码解码是网络通信的基础,对于...

    url编码表,转换编码

    在编程语言中,如JavaScript、Python、Java等,都有内置函数可以方便地对字符串进行URL编码和解码。例如,JavaScript的`encodeURIComponent()`和`decodeURIComponent()`函数,Python的`urllib.parse.quote()`和`...

    用JavaScript实现PHP的urldecode/urldecode函数

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

    URL 编码文档

    URL编码是一种在网络应用中将特殊字符转换为安全的ASCII字符序列的过程,以确保URL的正确传输和解析。URL,全称Uniform Resource Locator,是统一资源定位符,是互联网上资源的唯一地址。实际上,URL是URI(统一资源...

Global site tag (gtag.js) - Google Analytics