`
willeager
  • 浏览: 95278 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

JS urlencode,urldecode

阅读更多

var LittleUrl = {
    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },
    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },
    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
 
            var c = string.charCodeAt(n);
 
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
 
        }
 
        return utftext;
    },
 
    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;
 
        while ( i < utftext.length ) {
 
            c = utftext.charCodeAt(i);
 
            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
        return string;
    }
}
分享到:
评论
2 楼 willeager 2011-12-22  
encode:此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。
decode反之。
1 楼 miwula 2011-12-19  
执行了decode 和encode 之后,string会有什么变化

相关推荐

    urlEncode or urlDecode

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

    用JavaScript实现PHP的urldecode/urldecode函数

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

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

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

    用JavaScript实现PHP的urlencode与urldecode函数

    文章《用JavaScript实现PHP的urlencode与urldecode函数》就提供了如何在JavaScript中实现这两个函数的方法。 首先,我们来理解urlencode函数的功能和实现原理。urlencode函数的目的是将字符串进行编码,使得该字符...

    JS版 UrlEncode

    尽管这个JS版本的`UrlEncode`和`UrlDecode`函数能够处理大多数基本的编码和解码需求,但在实际应用中,开发者应考虑使用JavaScript内置的`encodeURIComponent`和`decodeURIComponent`函数,因为它们遵循更严格的编码...

    UrlEncodeDecode解码编码工具(双向)

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

    php自定义urlencode,urldecode函数实例

    而urldecode函数则用于对经过urlencode编码的字符串进行解码。这些函数在日常开发中非常重要,尤其是在创建URL查询字符串或处理表单数据时。 当标准的urlencode函数不能满足特定需求时,我们可以自定义一个类似的...

    Python3中urlencode和urldecode的用法详解

    在Python3中,将中文进行urlencode编码使用函数 urllib.parse.quote(string, safe='/', encoding=None, errors=None) 而将编码后的字符串转为中文,则使用 urllib.parse.unquote(string, encoding='utf-8', errors...

    Javascript UrlDecode函数代码

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

    java net unicode / native2ascii / url decode / url encode / UTF8 / js url code

    标题中的“java net unicode / native2ascii / url decode / url encode / UTF8 / js url code”涉及了Java网络编程中的几个关键概念,这些概念在处理字符编码时非常重要。以下是对这些概念的详细解释: 1. **...

    js实现urlencode加密适用于ut8编码

    在网站开发过程中,使用汉字传输会导致有时URL会出现乱码的问题,可通过urlencode对中文进行编码,然后再解码,避免出现乱码,此函数加密的字符串可通过php的urldecode进行解码

    关于JAVASCRIPT urldecode URL解码的问题

    最后,文档中的内容还提供了一段JavaScript代码,分别实现了`UrlEncode`和`UrlDecode`两个函数。这两个函数通过遍历字符串,对于URL中的特殊字符进行编码和解码。这些函数特别考虑了字符的ASCII值,并使用十六进制来...

    decode解码函数

    在ASP(Active Server Pages)环境中,可以使用内置的`Server.URLEncode`函数进行URL编码,而解码则可以使用`Server.URLDecode`函数。`Server.URLDecode("编码后的字符串")`会返回解码后的原始字符串。例如,如果有...

    js中escape对应的C#解码函数 UrlDecode

    本文将详细探讨JavaScript中的`escape`函数及其C#对应的解码方法`System.Web.HttpUtility.UrlDecode`,同时也会讲解JavaScript中的`escape`、`encodeURI`和`encodeURIComponent`的区别以及它们的解码对应函数。...

    Javascript下的urlencode编码解码方法附decodeURIComponent

    这里还提到了两种自定义的解码函数,分别是VBScript的`URLDecode`和JavaScript的`UrlDecode`。虽然它们在网络上有广泛的应用,但是它们可能无法完全处理所有由`encodeURIComponent`产生的编码字符串,因为它们可能不...

    url decode problem 解决方法

    相对应地,解码时也有`urldecode`和`rawurldecode`。这种设计可能给开发者带来困扰,因为需要根据实际场景选择合适的编码函数。 解决URL编码问题的关键在于理解各种编码函数的差异,并根据应用需求选择正确的方法。...

Global site tag (gtag.js) - Google Analytics