как использовать decodeURIComponent в ASP? - PullRequest
3 голосов
/ 18 февраля 2010

Из моего javascript я пытаюсь опубликовать данные на моей странице asp, используя encodeURIComponent

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

Как мне декодировать мой encodeURIComponent на странице asp, используя vbscript?

в надежде на вашу поддержку

Ответы [ 3 ]

7 голосов
/ 18 февраля 2010

Я думаю, вы имеете в виду, что хотите декодировать компонент URI в коде vb.net, а не в скрипте vb.

Дело в том, что вам это не нужно ... Request.Querystring("query_string_variable") автоматически сделает это за вас.

если вы явно хотите это сделать, вы можете использовать

HttpUtility.UrlDecode() в .net

если вы хотите сделать это в VBscript, смотрите ответ Валерио

2 голосов
/ 23 мая 2012

Я думаю, вам нужно это: Классическая функция ASP URLDecode с использованием decodeURIComponent

<%
FUNCTION URLDecode(str)
'// This function:
'// - decodes any utf-8 encoded characters into unicode characters eg. (%C3%A5 = å)
'// - replaces any plus sign separators with a space character
'//
'// IMPORTANT:
'// Your webpage must use the UTF-8 character set. Easiest method is to use this META tag:
'// <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
'//
    Dim objScript
    Set objScript = Server.CreateObject("ScriptControl")
    objScript.Language = "JavaScript"
    URLDecode = objScript.Eval("decodeURIComponent(""" & str & """.replace(/\+/g,"" ""))")
    Set objScript = NOTHING
END FUNCTION
%>
0 голосов
/ 27 января 2016

Когда вы AJAX / публикуете обычный «текст» с «небезопасными» символами, вам необходимо кодировать URI для отправки некоторых «текстовых» комментариев в текстовой области

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!

Итак, для кодирования URL необходимо отправить его в кодировке с помощью метода 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 Classic

EDIT:

<%
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
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...