为什么在实现post调用后我会获得UTF8格式?

时间:2014-09-07 08:40:41

标签: jquery ajax asp.net-mvc post utf-8

我实施了帖子:

function SendMessage() {
    $.ajax(
    {
        url: "/PostEmail/Index",
        type: 'POST',
        dataType: "json",
        data: {contact1: "ddd@mail.com" },
        success: function (result) { }
    });
}

我使用此方法捕获此调用:

public class PostEmailController : Controller
{
    public ActionResult Index(string contact1)
    {
        var contact2 = Request.Form;
        return View();
    }
}

实现post调用后,变量等于:

contact1= ddd@mail.com
contact2= ddd%40mail.com

知道为什么contacts2中的符号“@”出现在utf-8格式%40中,而在contact1中我得到@字符?

谢谢你的推荐。

1 个答案:

答案 0 :(得分:0)

我认为它不是utf8编码的,而是urlencoded。

你只需要urldecode contact2。

只要您不使用多部分编码,就会始终将帖子数据传输到urlencoded。但通常urldecoding由服务器应用程序完成(例如,当你使用php时的Apache)