2010-02-18 65 views
2

从我的JavaScript我尝试发布数据,以我的ASP页面使用encodeURIComponent方法如何在asp中使用decodeURIComponent?

var dd = encodeURIComponent(document.getElementById("Remarks").innerHTML); 

我如何使用VBScript在ASP页面进行解码我encodeURIComponent方法?

希望您的支持

回答

5

我想你的意思是你想在vb.net代码的URI部分后面,而不是解码VB脚本。

这里的东西是你不需要它... Request.Querystring("query_string_variable")自动为你做。

如果明确要做到这一点,你可以使用

HttpUtility.UrlDecode()在.NET

如果你真的在VBScript做到这一点,也许这个链接可以帮助你 http://www.kamath.com/codelibrary/cl006_url.asp

0

当你AJAX /发布一个正常的“文本”成为“不安全”的字符,所以你必须encodeURI发送一些像文本一样在一个textarea评论

var URL = "somepage.asp"; 
var Params = "text=Hello World!"; 
var ajax = getHTTPObject();  
ajax.open("POST", URL, true); 
ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
ajax.setRequestHeader("Content-length", Params.length); 
ajax.setRequestHeader("Connection", "close"); 
ajax.onreadystatechange = function() { 
    if (ajax.readyState == 4 && ajax.status == 200) { 
     divResponse.innerHTML = ajax.responseText; //alert(ajax.responseText); 
    } 
} 
ajax.send(Params); 

结果将是一些像:

HelloWorld! 

因此,为了编码,你必须把它与JavaScript的方法编码

var URL = "somepage.asp"; 
var Params = encodeURI("text=Hello World!"); 
var ajax = getHTTPObject();  
ajax.open("POST", URL, true); 
ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
ajax.setRequestHeader("Content-length", Params.length); 
ajax.setRequestHeader("Connection", "close"); 
ajax.onreadystatechange = function() { 
    if (ajax.readyState == 4 && ajax.status == 200) { 
     divResponse.innerHTML = ajax.responseText; //alert(ajax.responseText); 
    } 
} 
ajax.send(Params); 

然后,一个网址结果会像这样:

Hello World! 

所以问题是如何“解码”是URI为了在ASP经典serverpage

编辑使用它编码:

<% 
FUNCTION URLDecode(str) 
    Dim objScript 
    Set objScript = Server.CreateObject("ScriptControl") 
    objScript.Language = "JavaScript" 
    URLDecode = objScript.Eval("decodeURIComponent(""" & str & """.replace(/\+/g,"" ""))") 
    Set objScript = NOTHING 
END FUNCTION 
%>