用JavaScript实现PHP的urlencode与urldecode函数_javascript技巧
很多朋友说JavaScript的decodeURI函数也可以实现,但有bug所有呢,下面看下下面的函数,经过测试使用暂时没什么问题,我在之前的文章说过,这个和php的urldecode函数根本不是一回事。下面是我根据高人的代码改写的JavaScript版的urldecode函数,参考的链接在开头提到的文章中有,就不一一列举了。和之前的urlencode函数一样,只实现了utf-8版的。
1、urlencode
使用方法: urlencode(str);
function urlencode(clearString) { var output = ''; var x = 0; clearString = utf16to8(clearString.toString()); var regex = /(^[a-zA-Z0-9-_.]*)/; while (x < clearString.length) { var match = regex.exec(clearString.substr(x)); if (match != null && match.length > 1 && match[1] != '') { output += match[1]; x += match[1].length; } else { if (clearString[x] == ' ') output += '+'; else { var charCode = clearString.charCodeAt(x); var hexVal = charCode.toString(16); output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase(); } x++; } } function utf16to8(str) { var out, i, len, c; out = ""; len = str.length; for(i = 0; i < len; i++) { c = str.charCodeAt(i); if ((c >= 0x0001) && (c <= 0x007F)) { out += str.charAt(i); } else if (c > 0x07FF) { out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F)); out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F)); out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); } else { out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F)); out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); } } return out; } return output; }
2、urldecode
使用方法:urldecode(url);
function urldecode(encodedString) { var output = encodedString; var binVal, thisString; var myregexp = /(%[^%]{2})/; function utf8to16(str) { var out, i, len, c; var char2, char3; out = ""; len = str.length; i = 0; while(i < len) { c = str.charCodeAt(i++); switch(c >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: out += str.charAt(i-1); break; case 12: case 13: char2 = str.charCodeAt(i++); out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F)); break; case 14: char2 = str.charCodeAt(i++); char3 = str.charCodeAt(i++); out += String.fromCharCode(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0)); break; } } return out; } while((match = myregexp.exec(output)) != null && match.length > 1 && match[1] != '') { binVal = parseInt(match[1].substr(1),16); thisString = String.fromCharCode(binVal); output = output.replace(match[1], thisString); } //output = utf8to16(output); output = output.replace(/\\+/g, " "); output = utf8to16(output); return output; }
当服务器端通过php的urlencode转码的就可以使用js的urldecode进行解析即可。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP的urldecode()函数创建于PHP4,是一种常见的URL解码方法。URL编码是一种将URL中的非英文字符转换为特殊字符的方法,以便将URL传输到服务器或以其他方式处理URL。而urldecode()函数则是将这些特殊字符还原为原始的字符串。该函数的语法为:stringurldecode(string$str)参数str表示需要解码的字符

PHP的urlencode()函数:如何将字符串编码为URL安全格式,需要具体代码示例随着互联网的发展,URL在日常生活中被广泛使用,我们经常需要将一些特殊字符的字符串编码为URL安全格式,以便在URL中传递参数或者请求网页。PHP中提供了urlencode()函数来完成这个任务。本文将介绍urlencode()函数的用法,并给出一些具体的代码示例。一、ur

在现代开发中,将数据通过URL进行传递是一种常见的方式。然而,由于URL中可能含有一些特殊字符,例如空格、斜杠和问号等,这些特殊字符会破坏URL的结构,导致传输数据失败。为了避免这种情况的发生,PHP提供了urlencode函数,可以将URL编码为可传输的格式。urlencode函数的使用非常简单,它的语法如下:stringurlencode(string

PHP中的urldecode()函数用于对URL进行解码,将被转义的字符恢复为原始字符。在处理URL中的参数时,经常需要使用urldecode()函数。urldecode()函数的语法如下:stringurldecode(string$str)其中,$str是要解码的URL字符串。urldecode()函数会将字符串中的%xx替换为相应的字符,xx

PHP函数介绍—urlencode():对URL进行编码在开发网页应用程序时,经常会遇到需要对URL进行编码的情况。URL编码可以确保URL中的特殊字符正确传递,避免出现问题或错误的结果。在PHP中,我们可以使用urlencode()函数来进行URL编码。urlencode()函数的作用是将字符串转换为符合URL规范的编码格式。它将字符串中的非字母数字字符转

Python2.x中如何使用urllib.urlencode()函数对参数进行编码在编程过程中,我们经常需要与服务器进行交互并传递参数。而传递参数的过程中,我们需要对参数进行合适的编码,以确保数据的正确传输和解析。Python提供了urllib库,其中的urlencode()函数就是用来对参数进行编码的工具。下面我们就来看一下在Python2.x

在PHP中,我们经常需要将URL中的特殊字符进行编码,以便正确地传递参数。这时候就可以使用urlencode函数。urlencode函数的作用就是将字符串中的特殊字符进行编码,以便在URL中传递。这些特殊字符包括:字母数字字符、标点符号、协议字符、部分保留字符等。下面是urlencode函数的基本语法:urlencode(string$str):str
