有个问题请教高手解答。

frankrenping 2011-05-23 12:07:19
下面的代码网上很多地方都有转帖,是用JS encode url的代码,为啥我在使用时会报错:var c=str2asc(chrw);
这行中str2asc没有定义?

<script type="text/vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chrw(ascasc)
End Function
</script>

<script type="text/javascript">
/*这里开始时UrlEncode和UrlDecode函数*/
function UrlEncode(str){
var ret="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt= "";

for(var i=0;i<str.length;i++){
var chrw = str.charAt(i);
var c=str2asc(chrw);
tt += chrw+":"+c+"n";
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chrw==" ")
ret+="+";
else if(strSpecial.indexOf(chrw)!=-1)
ret+="%"+c.toString(16);
else
ret+=chrw;
}
}
return ret;
}
function UrlDecode(str){
var ret="";
for(var i=0;i<str.length;i++){
var chrw = str.charAt(i);
if(chrw == "+"){
ret+=" ";
}else if(chrw=="%"){
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+= chrw;
}
}
return ret;
}
//alert(UrlDecode("%C2%D2%C2%EB"));
</script>
...全文
155 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
frankrenping 2011-05-24
  • 打赏
  • 举报
回复
自己顶一下,有没人能明白那里的问题啊?
wcwtitxu 2011-05-23
  • 打赏
  • 举报
回复
用了 vbs
ie only


也可参考这个:http://www.iscripts.org/forum.php?mod=viewthread&tid=9

frankrenping 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wcwtitxu 的回复:]
用了 vbs
ie only


也可参考这个:http://www.iscripts.org/forum.php?mod=viewthread&tid=9
[/Quote]

有没有还有decode url 的,上面的链接里的JS不好用。
frankrenping 2011-05-23
  • 打赏
  • 举报
回复
找到一段代码如下,不知哪里有错,帮忙看一下。
函数str2asc和asc2str已经有定义在另一个js文件里。
<script language="javascript" type="text/javascript">
function str2asc(str)
{
var n = UnicodeToAnsi(str.charCodeAt(0));
var s = n.toString(16);
return s.toUpperCase();
}

function asc2str(code)
{
var n = AnsiToUnicode(code);
return String.fromCharCode(n);
}
function urlEncode()
{//alert("hellow");
var strobj=document.getElementById("encodetext").value;
var ret = "";
var strSpecial = "!\"#$%&’()*+,/:;<=>?[]^`{|}~%";
var tt = "";
for(var i = 0; i < strobj.length; i++)
{
var chr = strobj.charAt(i);
var c = str2asc(chr);
//alert(c);
tt += chr + ":" + c + "n";
//alert(tt);
if (parseInt("0x" + c) > 0x7f)
{
ret += "%" + c.slice(0,2) + "%" + c.slice(-2);
alert(ret);
}
else
{
if (chr == " "){
ret += "+";
}
else{
if (strSpecial.indexOf(chr) != -1)
{ret += "%" + c.toString(16);
alert(ret);
}else{
ret += chr;
}
}
}

return ret;
alert(ret);
}

function urlDecode(str)
{
var strobj=str
var ret = "";
for (var i = 0; i < strobj.length; i++)
{
var chr = str.charAt(i);
if (chr == "+")
{
ret += " ";
}
else{
if (chr == "%")
{
var asc = strobj.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;

}
}

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧