js解析javaUrl编码

zz/2024/7/13 11:06:38

在JAVA中设置了编码格式如下
java.net.URLEncoder.encode(loginName,"gbk");

但如何在JS中进行urlDecode呢?具体代码如下:
<script type="text/vbscript">
<!--
function str2asc(strstr)
str2asc = hex(asc(strstr))
end function

function asc2str(ascasc)
asc2str = chr(ascasc)
end function
'-->
</script>


<script type="text/javascript">
<!--
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;
}

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://www.ngui.cc/zz/2762692.html

相关文章

apache多域名绑定

用记事本打开appache下面的httpd.conf文件 示例如下&#xff1a; #NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # serve…

tomcat 7: IllegalArgumentException: taglib definition not consistent with specif

tomcat7&#xff0c;部署tomcat6下的项目统&#xff0c;报tomcat 7: IllegalArgumentException: taglib definitionnotconsistentwithspecificationversion错误&#xff0c; 查看日志发现&#xff0c;是web.xml下引入taglib标签的方式有了新的配置要求。 tomcat7.0前版本web.xm…

fedora18 安装后要做的一些事

1. 首先删除一些垃圾软件&#xff0c;免得占用你更新系统的时间&#xff1a;sudo yum -y remove abrt* calligra* ktp* 【其中abrt是bug报告软件&#xff0c;菜鸟们就别整bug提交了&#xff1b;calligra是kde下的默认office软件&#xff0c;太垃圾&#xff0c;俺直接换libreoff…

从request中获得参数Map,并返回可读的Map

/** * 从request中获得参数Map&#xff0c;并返回可读的Map * * param request * return */SuppressWarnings("unchecked")public static Map getParameterMap(HttpServletRequest request) { // 参数Map Map properties request.getParameterMap(); // 返回值Map …

centos 设置开机启动

在CentOS或者RedHat其他系统下&#xff0c;如果是后面安装的服务&#xff0c;如httpd、mysqld、postfix等&#xff0c;安装后系统默认不会自动启动的。就算手动执行/etc/init.d/mysqld start启动了服务&#xff0c;只要服务器重启后&#xff0c;系统仍然不会自动启动服务。 在…

Javanbsp;压缩类库的使用(转)

Java压缩类库的使用-1.总述 压缩是编程中常见的技巧&#xff0c;多用于大文件压缩&#xff0c;数据流压缩等。在Java类库中&#xff0c;内置了jar、ZIP、GZIP、ZLIB等的支持&#xff08;见java.util.zip、java.util.jar包&#xff09;。另外在Apache项目下Ant中ant.jar的org.ap…

Hibernatenbsp;保存返回主键

hibernate插入数据可以用save&#xff08;A&#xff09; 如果要返回主键&#xff0c;则A要实现serializable接口 Serializable pKey session.save&#xff08;A&#xff09;&#xff1b; pKey就是主键

MySQL多表更新和多表删除的实现[转…

注意&#xff1a;多表 UPDATE 不可以使用 ORDER BY 或 LIMIT。 多表删除 第一个多表删除格式从 MySQL 4.0.0 开始被支持。第二个多表删除格式从 MySQL 4.0.2 开始被支持。 仅仅在 FROM 或 USING 子句 之前 列出的表中的匹配记录行被删除。效果就是&#xff0c;你要以从多个表中…

mysqlnbsp;远程备份

导出&#xff1a; mysqldump -u用户名 -p密码 -h 192.168.11.192 数据库名称 > D:\bakcup.sql 导入&#xff1a; mysql -h localhost -u 用户名 -p 数据库名称< D:\bakcup.sql