.NET экранирующие символы? - PullRequest
0 голосов
/ 09 марта 2012

Можно ли как-нибудь удалить эти символы в .NET?

Я отправляю строку, содержащую код PHP через ajax, в метод .NET.

Этот метод затем отправляет его по электронной почте, но, поскольку они были экранированы в jQuery, он выглядит следующим образом:

<?php print $test; ?>

Looks like:

%3C%3Fphp%0A%0Aprint%20%24test%3B%0A%0A%3F%3E

Так что в основном мне нужно удалить его перед отправкой по электронной почте.


РЕДАКТИРОВАТЬ

Все еще не могу заставить это работать, все еще не будет отправлять содержимое поля.

public static string CreateSnippet(int processid)
{

    //here we find form values posted to the current page
    HttpRequest post = HttpContext.Current.Request;
    string email = post["email"];
    string comment = post["comment"];
    string name = post["name"];
    string website = post["website"];

    var DecodedString = HttpContext.Current.Server.UrlDecode(comment);

    var mailcontent = new StringBuilder();
    mailcontent.AppendFormat(EmailLineFormat, "Name", name);
    mailcontent.AppendFormat(EmailLineFormat, "Email", email);
    mailcontent.AppendFormat(EmailLineFormat, "Website", website);
    mailcontent.AppendFormat(EmailLineFormat, "Message", DecodedString);

    // Send the email
    library.SendMail("admin@email.co.uk", "admin@email.co.uk", "Contact Form Enquiry", mailcontent.ToString(), true);

    //if nothing gets created, we return zero
    return "success";

}

Я используюэто правильно или есть проблема с тем, как я настроил переменные?

Спасибо, Роберт

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

Используйте decodeURIComponent в строке в javascript или эквивалентном декодировании URL в .NET (Server.UrlDecode(EncodedString))

0 голосов
/ 09 марта 2012

URLDecode - это правильный способ сделать это, но просто для удовольствия вот строка с одним регулярным выражением:

Regex.Replace(input, "%(..)", m => ((char)Convert.ToInt32(m.Groups[1].ToString(), 16)).ToString());
...